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

Django管理内联重复键值违反了唯一约束

水焱
2023-03-14

Python 3.6 Django 2.0

我有两个模型:

from django.contrib.contenttypes.fields import GenericRelation

@python_2_unicode_compatible
class Domain(models.Model):
    tool_result = GenericRelation('projects.ToolResult')


@python_2_unicode_compatible
class ToolResult(models.Model):
    tool = models.ForeignKey('projects.Tool', on_delete=models.CASCADE)
    class Meta:
        unique_together = ('content_type', 'object_id', 'tool')

然后,在admin类中,我创建了一般的内联表格:

class ToolResultGenericTabularInline(GenericTabularInline):
    model = ToolResult
    extra = 0

@admin.register(Domain)
class DomainAdmin(admin.ModelAdmin):
    inlines = [ToolResultGenericTabularInline, ]

当我试图通过内联保存相同的对象时,我得到一个错误:

重复的键值违反了唯一约束“projects_toolresult_content_type_id_object_i_71ee2c2e_uniq”详细信息:键(content_type_id、object_id和tool_id)=(18、22、3)已经存在。

这是django错误吗?

共有2个答案

郎鸿雪
2023-03-14

检查这里

Django门票#12028

勾渝
2023-03-14

在ToolResult类的元描述中:

class Meta:
        unique_together = ('content_type', 'object_id', 'tool')

唯一的集合线表示每个工具在工具结果中都应该是唯一的。如果删除此unique_TOTHE约束,则可以保存相同的对象。我希望这有帮助。

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

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

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

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

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

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