Django 模型保存和“键 PRIMARY 的重复条目”

Posted

技术标签:

【中文标题】Django 模型保存和“键 PRIMARY 的重复条目”【英文标题】:Django Model Save and "Duplicate entry for key PRIMARY" 【发布时间】:2015-01-09 21:34:51 【问题描述】:

我有一个 django 模型,将两个外键归档到一个模型:

class MyModel(models.Model):
   user = models.ForeignKey(User)
   boss = models.ForeignKey(User, blank=True, null=True, related_name = 'the_boss')

   def save(self, *args, **kwargs)
       if self.pk:
          #do some staff
       super(MyModel, self).save(*args, **kwargs)

boss 字段,添加模型更新。但是当模型更新时(django admin)我有

键 PRIMARY 的重复条目

super(MyModel, self).save(self, *args, **kwargs)

错误。对此问题的任何帮助将不胜感激。

【问题讨论】:

请添加更多详细信息(明确do some staff part)以便能够理解问题。 为什么不给User 模型提供一个可选的ForeignKey?这就是为什么它给你错误,因为你有两个。 @DavidW。我已经编辑了我的问题 【参考方案1】:

使用related_name 应该可以。问题出在#do some staff 部分或模型迁移等其他地方。

【讨论】:

【参考方案2】:

尝试将related_name 也添加到用户 ForeignKey

【讨论】:

related_name 也有同样的问题。

以上是关于Django 模型保存和“键 PRIMARY 的重复条目”的主要内容,如果未能解决你的问题,请参考以下文章

保存时跳过字段(Django 模型、插入和更新)

Django REST框架:在ModelViewSet中保存相关模型

在 Django 模型中保存时区

扩展后无法在 Django 模型上保存图像

如何运行保存在模型实例中的 Django 代码?

保存自定义用户模型时 Django ManyToMany 覆盖