首页 > 解决方案 > 使用 django-allauth 注册后阻止用户登录

问题描述

我正在为我的 django 应用程序使用 django-allauth。默认情况下,当用户成功注册时,他们会自动登录。如何覆盖默认行为并阻止用户在成功注册后登录。用户注册后,必须将他/她重定向到登录页面。我禁用了电子邮件验证。谢谢你。

# settings.py
LOGIN_REDIRECT_URL = 'welcome'
ACCOUNT_AUTHENTICATED_LOGIN_REDIRECTS = False
ACCOUNT_LOGOUT_REDIRECT_URL = 'thanks'

ACCOUNT_EMAIL_REQUIRED = False
ACCOUNT_EMAIL_VERIFICATION = 'none'

标签: django-allauth

解决方案


如果您不需要电子邮件验证,您可以像这样跳过登录:

首先在您的urls.py中,您必须使用指向您自己视图的 url 覆盖默认 SignupView 的 url:

url(r^'accounts/signup/$', views.CustomSignupView.as_view(), name="account_signup")

然后在您的views.py中,您有一个自定义视图,它将返回到您的首页的路径,而不是继续登录用户。

class CustomSignupView(SignupView):

    def form_valid(self, form):
        self.user = form.save(self.request)
        return redirect('/frontpage')

推荐阅读