Django:所有授权都使用电子邮件创建帐户 - 唯一约束失败。显示消息而不是给出错误
Django: all auth create account with email - unique constraint failed. Display message instead of giving an error
我正在使用 djnago all-auth 创建自定义用户帐户。使用电子邮件和密码创建帐户时,如果使用电子邮件的帐户已经存在,则会出现错误(UNIQUE 约束失败:account_emailaddress.email),但我想显示消息,说明使用此电子邮件的帐户已经存在,而不是抛出错误。处理这个问题的最佳方法是什么?一般来说,我会使用 AJAX 来验证和显示我自己的观点的消息,但我不知道如何在这里处理 django all-auth 包。
我建议您覆盖 signup/login 表单以管理此错误。你检查过文档了吗? https://django-allauth.readthedocs.io/en/latest/forms.html
我认为 this answer 与您的问题有关。
this answer:
中给出了比较相似的方法
- 创建继承
SignupView
并覆盖表单 class 的自定义视图
- 创建一个继承自
SignupForm
并覆盖电子邮件验证消息的自定义表单
- 在你自己的 urls.py 之后添加以下
include('allauth.urls')
来覆盖 account_signup
url
由于 djangoallauth 会处理唯一约束,因此如果用户尝试使用您的数据库中已存在的电子邮件 ID 的任何社交媒体帐户登录,则您不必在您的字段中添加 unique=True 它 djangoallauth 将简单地忽略并将不要在您的用户模型中设置电子邮件 ID。 :)
我正在手动处理我的独特字段,即电子邮件字段
我正在使用 djnago all-auth 创建自定义用户帐户。使用电子邮件和密码创建帐户时,如果使用电子邮件的帐户已经存在,则会出现错误(UNIQUE 约束失败:account_emailaddress.email),但我想显示消息,说明使用此电子邮件的帐户已经存在,而不是抛出错误。处理这个问题的最佳方法是什么?一般来说,我会使用 AJAX 来验证和显示我自己的观点的消息,但我不知道如何在这里处理 django all-auth 包。
我建议您覆盖 signup/login 表单以管理此错误。你检查过文档了吗? https://django-allauth.readthedocs.io/en/latest/forms.html
我认为 this answer 与您的问题有关。
this answer:
中给出了比较相似的方法- 创建继承
SignupView
并覆盖表单 class 的自定义视图
- 创建一个继承自
SignupForm
并覆盖电子邮件验证消息的自定义表单 - 在你自己的 urls.py 之后添加以下
include('allauth.urls')
来覆盖account_signup
url
由于 djangoallauth 会处理唯一约束,因此如果用户尝试使用您的数据库中已存在的电子邮件 ID 的任何社交媒体帐户登录,则您不必在您的字段中添加 unique=True 它 djangoallauth 将简单地忽略并将不要在您的用户模型中设置电子邮件 ID。 :) 我正在手动处理我的独特字段,即电子邮件字段