使用 Django 和 AllAuth 登录后不重定向到我自己的视图
Posted
技术标签:
【中文标题】使用 Django 和 AllAuth 登录后不重定向到我自己的视图【英文标题】:Not redirecting to my own view after login with Django and AllAuth 【发布时间】:2020-09-07 16:36:56 【问题描述】:我正在熟悉 Django,我正在尝试使用 django-allauth,但我发现的问题是登录后我无法重定向到自己的视图。分享一段代码:
这是我在 login.html 模板中的表单:
<form action="% url 'webapp:home' %" method="post" class="margin-bottom-0">
% csrf_token %
...
</form>
这是在我的应用程序中定义的 url.py:
app_name = 'webapp'
urlpatterns = [
path(route='', view=views.HomeView.as_view(), name='home'),
]
我还定义了我的命名空间:
path("workspace/", include("picnic.webapp.url", namespace="webapp")),
现在,每次登录成功时,我都会得到与登录匹配的 URL:http://127.0.0.1:8000/accounts/login/?next=/workspace/,它再次将我重定向到登录页面......我如何强制 allauth 将我发送到 http://127.0.0.1:800/workspace 而不是 url目前正在发送给我?
问候
【问题讨论】:
【参考方案1】:看着documentation
声明您必须设置:
login_redirect_url
在您的设置中
您的登录表单有问题,该操作指定表单发布到的 url,allauth
的默认值是这样的:
action="% url 'account_login' %"
检查您是否将来自 allauth 的网址包含在基础 urls.py
中:
url(r'^accounts/', include('allauth.urls')),
编辑:
我猜
picnic.webapp.url
应该是picnic.webapp.urls
?
【讨论】:
bb4l,感谢您的回答,我的朋友,但这是我尝试的第一件事,但它不起作用,因为即使我在我的 LOGIN_REDIRECT_URL="home" 中也将我重定向到 127.0.0.1:8000/accounts/confirm-email设置 您是否更改了登录视图? 您是否将ACCOUNT_AUTHENTICATED_LOGIN_REDIRECTS
设置为False
?
这是项目现在的状态:我猜 picnic.webapp.url 应该是 picnic.webapp.urls? -> 1)是的,我发布时有一个错字,但是是的......它在项目中是正确的。 2) ACCOUNT_EMAIL_VERIFICATION = "强制" 3) ACCOUNT_AUTHENTICATED_LOGIN_REDIRECTS = False 4) LOGIN_URL = "account_login" 5)
这是我的第一次尝试,甚至想到了这个配置,登录后,它把我重定向到127.0.0.1:8000/accounts/confirm-email,我不想确认任何事情,我想直接回家创建一个新的视图类来捕获我的确认电子邮件 url 和手册。将其重定向到家。我不想要那个。再次请,我是使用 django 的新手,我很确定我做错了什么以上是关于使用 Django 和 AllAuth 登录后不重定向到我自己的视图的主要内容,如果未能解决你的问题,请参考以下文章
使用 django-allauth 启用 oauth 登录,但使用自定义提供程序
Django从零搭建个人博客 | 使用allauth插件管理用户登录与注册