django - Django Allauth 注册阻止登录
解决方案
您已登录,因为此行为已融入到 allauth 的注册视图中。当表单有效时,视图调用被调用的函数complete_signup
来做两件事:
- 发出
user_signed_up
信号 - 登录用户
为了解决这个问题,我们需要离开第 1 步,用简单的重定向替换第 2 步。
这是如何做到的:
- 扩展 SignupView
allauth/account/views.py
并覆盖其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
尚未测试代码,但它应该可以工作。
- 在 urls.py 中连接您的新视图,以便替换旧的注册视图 url。
推荐阅读
- c++ - 在 C++ 中通过模板包重新创建函数签名和调用
- java - 将 Oracle 合并转换为 MySQL 更新
- php - php中的睡眠功能导致我的页面挂起
- javascript - 如何使用 JavaScript 从 Android 应用程序中的 WebView 发送 ajax 请求
- r - 有没有一种快速的方法来修改 R 中嵌套列表的一致组件?
- passenger - 重新启动 Web 服务器时乘客无法启动
- python - SQL语法定义,混淆符号
- excel - 用户表单中的组合框问题
- azure - 高 Azure 网络使用输入/输出
- python - Tableau 中返回的列表数据类型的 Python 脚本计算