当前位置: 首页 > 知识库问答 >
问题:

唯一约束失败:auth_user.username用电子邮件注册

罗安和
2023-03-14

在与django allauth集成成功运行了几天之后,我遇到了这个奇怪的错误。我的方法类似于这个项目。https://github.com/aellerton/demo-allauth-bootstrap

此处使用电子邮件作为用户的唯一标识符,而不是用户名。

IntegrityError at /accounts/signup/
UNIQUE constraint failed: auth_user.email
Request Method: POST
Request URL: http://localhost:8080/accounts/signup/
Django Version: 1.8
Exception Type: IntegrityError
Exception Value:

UNIQUE constraint failed: auth_user.email
Exception Location: ~/web_dev/unicorn_dev/lib/python3.4/site-packages/django/db/backends/sqlite3/base.py in execute, line 318
Python Executable: ~/web_dev/unicorn_dev/bin/python
Python Version: 3.4.3
Python Path:

['~/web_dev/unicorn_dev/funding',
'/Library/Frameworks/Python.framework/Versions/3.4/lib/python34.zip',
'/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4',
'/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/plat-darwin',
'/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/lib-dynload',
'~/web_dev/unicorn_dev/lib/python3.4/site-packages']

以下是模型类:

class AccountUser(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(('email address'), blank=False, max_length=255, unique=True)
    first_name = models.CharField(('first name'), max_length=40, blank=True, null=True, unique=False)
    last_name = models.CharField(_('last name'), max_length=40, blank=True, null=True, unique=False)

这是设置。派克

ACCOUNT_USER_MODEL_USERNAME_FIELD = None /* user_name is not used, if not None, migration will report errors */
ACCOUNT_USERNAME_REQUIRED = False
#Enforce uniqueness of e-mail addresses.
ACCOUNT_USER_MODEL_EMAIL_FIELD = "email"
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_AUTHENTICATION_METHOD = "email"

以下是我所做的:

1. Deleting the whole database and re-migrating the database does not help at all. 
2. Checked this link https://github.com/pennersr/django-allauth/issues/1014

有人能帮忙指出可能的错误吗?我不明白为什么它突然报告了这样的错误。谢谢!

共有1个答案

段超
2023-03-14

我终于找出了原因,并在这里列出了它们。这可以帮助那些遇到和我一样情况的人。

  1. 设置中的站点ID。应更改py以匹配管理中的站点id
  2. 在自定义注册表单中添加注册。请参见这里如何在使用django allauth时自定义用户配置文件
 类似资料:
  • 问题内容: 我正在使用Django从Tango中学习Django,但是在输入时,我始终收到此错误: 这是输出: Models.py: 问题答案: 造成这种限制的原因可能是,在你最初迁移它时,在类中没有任何字段被调用(第一次迁移),并且在模型中添加了该字段之后,当你运行时,你已将默认值设置为静态值值(即或”等),并且打破了类别表的表段列的唯一约束,其中表段应该是唯一的,但这不是因为所有条目都将获得该

  • 问题内容: 我试图在表中插入值。但是只插入一个值。尝试插入新值时,日志猫出现错误。 日志猫显示: 插入行时,这两行显示错误。 EventTableHelper 如何解决呢? 问题答案: 您的代码可能违反了字段上主键的唯一性约束。 两种可能的解决方案是: 确保您为每个对象返回唯一值。现在,我看不到您将任何标识符传递给其构造函数,并且可能所有事件都以相同的值插入。 如果您不希望自己生成ID,则可以将设

  • 如何在数据库中存储该电子邮件的唯一ID。 我尝试了$概述=imap_fetch_overview($inbox,$email_number,0);我收到了一堆数字,但问题是当其中一封电子邮件被删除时,数字会发生变化。 如何正确存储?MD5消息还是什么? 基本上,我试图在我的个人网络应用程序上接收电子邮件,在那里我可以管理和访问我自己的电子邮件。它使用imap调用gmail。 无论如何,我可以在哪里

  • 我想添加一个约束,只在表的一部分中对列强制唯一性。 上面的部分是一厢情愿的想法。 有办法吗?还是应该回到关系绘图板?

  • 主要内容:在创建表时设置唯一约束,在修改表时添加唯一约束,删除唯一约束MySQL 唯一约束(Unique Key)是指所有记录中字段的值不能重复出现。例如,为 id 字段加上唯一性约束后,每条记录的 id 值都是唯一的,不能出现重复的情况。如果其中一条记录的 id 值为‘0001’,那么该表中就不能出现另一条记录的 id 值也为‘0001’。 唯一约束与主键约束相似的是它们都可以确保列的唯一性。不同的是,唯一约束在一个表中可有多个,并且设置唯一约束的列允许有空值,但

  • 主要内容:Oracle唯一约束语法,Oracle唯一约束例子在本教程中,您将学习如何使用Oracle唯一约束来确保包含在一列或几列中的数据在表中的行之间是唯一的。 Oracle唯一约束语法 一个唯一的约束是一个完整性约束,它确保存储在一列或一组列中的数据在表中的行之间是唯一的。 通常,在使用内联约束语法创建表时,将唯一约束应用于列,如下所示: 此唯一约束指定中的值在整个表中是唯一的。也可以使用外线()约束语法来定义一个唯一的约束: 可以通过使用子句和约束名

  • 当我试图创建第二个表时,我遇到了以下错误,但我不知道为什么。对于表patente,我希望能够将(idfunconario,titulo)作为主键。正如其他主题中所建议的,我已经尝试将唯一约束设置为“唯一(IDFunconario,titulo)”。 消息错误: 错误:没有唯一的约束匹配引用表"public acao"的给定键SQL状态:42830 我在64位的Windows 8.1上使用Postg

  • 问题内容: 我正在使用这些注释将数据输入数据库表。我想使userId字段唯一。但是当我这样做时,它向我显示错误 问题答案: 或者,如果它是数据库生成的ID,您也可以执行此操作