无论如何都要阻止Allauth注册表单自动登录用户?
我在这里发现了类似的帖子但没有答案:
prevent user login after registration using django-allauth
谢谢。
答案 0 :(得分:3)
您已登录,因为此行为已被烘焙到allauth的注册视图中。当表单有效时,视图会调用名为complete_signup
的函数,该函数执行两项操作:
user_signed_up
信号要解决此问题,我们需要退出步骤1并使用简单的重定向替换步骤2.
以下是如何做到这一点:
allauth/account/views.py
扩展SignupView并覆盖其form_valid
方法,如下所示: class CustomSignupView(SignupView):
def form_valid(self, form):
# By assigning the User to a property on the view, we allow subclasses
# of SignupView to access the newly created User instance
self.user = form.save(self.request)
try:
signals.user_signed_up.send(
sender=self.user.__class__,
request=self.request,
user=self.user,
**{}
)
return HttpResponseRedirect(self.get_success_url())
except ImmediateHttpResponse as e:
return e.response
尚未测试代码,但它应该正常工作。
答案 1 :(得分:0)
我正在使用django-allauth 0.42.0
不需要扩展SignUp视图,可以通过以下设置来实现:
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
在您的项目settings.py文件中。