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

Django+Postgres auth_user重复键值违反唯一约束“auth_user_username_key”

郦磊
2023-03-14
    try:
        django_user = User.objects.get(username__iexact=self.username)
    except User.DoesNotExist:
        django_user = User(username=self.username)
    django_user.is_staff=True
    django_user.save()
duplicate key value violates unique constraint "auth_user_username_key"
DETAIL:  Key (username)=(xxxxxxxx@yyyyy.com) already 
         exists.

我不明白这样做的原因。在网上搜索,发现可能是因为索引被破坏,不得不重置序列,但找不到确切的原因和解决办法。请帮我做这个。提前致谢

共有1个答案

沈鸿光
2023-03-14

我已经有一段时间没有刷新我的Django技能了,但据我所知,您可以使用另一种方法来超越这个问题,比如:

if Entry.objects.filter(username=self.username).exists():
    # DO IF STUFF
else:
    # DO ELSE STUFF

如果您的用户名不是pk键,那么您可能必须将其设置为唯一的,这将防止有重复的用户名。

奥维希·詹戈参考文献

但是,通过您使用self.username变量的方式,它在我的脑海中挖掘了一些东西。似乎你有一些类,你需要做这样的功能。恐怕您所拥有的这段和平代码位于同一个类模型声明中,根据您想要执行的查询类型,您应该记住这一点:

如果你想检查一些用户名还没有插入到数据库中,那么它将不会有一个pk,你将无法在数据库中寻找这样的数据。通过在。save()之前调用它,可能会发生一些这样的错误。

希望这对你有帮助。

 类似资料:
  • 我在创建应用程序时遇到了这个问题。因此,每当我添加第一条评论时,问题都不会出现,但当我第二次尝试时,我会收到此错误: 重复的键值违反了唯一约束“tripplanner_discussion_author_id_key”详细信息:键 (author_id)=(1) 已存在。 我试图把放到 models.py,但它根本没有帮助。 models.py views.py 更新 当我登录到另一个用户时,一个

  • 问题内容: 我正在跟着我先前提出的一个问题,在这个问题中,我试图寻求从愚蠢/编写不佳的mysql查询到postgresql的转换。我相信我成功了。无论如何,我正在使用从mysql数据库手动移动到postgres数据库的数据。我正在使用如下查询: 我有理由相信这很好。但是,这导致了新问题。尝试提交时,我从django收到一条错误,指出: 我已经看过这里发布的一些回复,但是我还没有找到解决我的问题的方

  • 我有一个笑话模型: 现在,当我试图迁移最后一行时,我得到了错误。基本上,我想将一个用户链接到Joke对象,因为我已经有了一个数据库,所以我希望默认值为1,这是管理员用户的id(我检查过了...).Makemigrations工作正常,但是当我尝试迁移时,我得到了这个: 我真的不明白怎么了。有什么想法吗?

  • 如果存在,上面的代码通过按用户名搜索来获取用户,如果不存在,则创建一个新对象,并更新其属性并将其保存回数据库。 理想情况下,该代码应该处理对象已经存在于数据库中的情况。但它抛出了以下错误: 我不明白这是为什么。在互联网上搜索,发现这可能是因为指数被破坏,并已重置序列,但无法找到确切的原因和解决方案。请帮我做这件事。预先感谢

  • 当并发客户机试图将数据插入子表时,我们面临唯一的约束冲突问题。 假设我们有1以下的表格。用户user_id、first_name、last_name。2.项目project_idproject_name和project_description。 两者都有着多对多的关系。 当两个客户端试图创建一个新用户时。假设client1创建了user1(id=aa1),子记录项目(id=1)。Client2还创

  • 这是我的stacktrace: 学生表: 学生实体:学生标识默认为自动递增 postgres控制台(这些学生由sql脚本创建): 在此处输入图像描述 我也尝试过这样生成,但这没有帮助 我用postgreql它似乎我有问题与id Generator,谢谢你的想法和答案

  • 我在django应用程序中创建了一个模型,并从pgadmin将数据填充到表中,但现在当我试图从应用程序创建记录时,它抛出了这个完整性错误: 重复的键值违反了唯一约束“packsapp_foo_pkey” 详细信息:键(id)=(4)已经存在。 这是models.py 我是否总是必须从应用程序本身插入数据? Views.py

  • 我必须交换同一表的不同行的属性。 有一列“reference_id”在 DB 中具有唯一的约束。 代码: A 级- B级- 异常跟踪: