是否有办法阻止 Allauth 注册表单自动登录用户?
我在这里找到了一个类似的帖子,但没有答案:
最佳答案
您已登录,因为此行为已融入 allauth 的注册 View 中。当表单有效时, View 调用名为 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
尚未测试代码,但它应该可以工作。
将新 View 连接到 urls.py 中,以便它替换旧的注册 View url。
关于python - Django Allauth 注册阻止登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50893917/