非主键字段上的重复键错误

时间:2017-02-03 16:53:51

标签: python django

我收到django的跟随错误

  

(1062,"重复输入' 2'关键' building_id'")

这是模型的样子

class BuildingProgressComments(models.Model):

    user = models.ForeignKey(User)
    building = models.OneToOneField('Building')
    date_created = models.DateTimeField(auto_now_add=True)
    comment = models.TextField(blank=True, null=True)

    class Meta:
        verbose_name='Building progress notes'
    def __unicode__(self):
        return unicode(self.building)

我正在尝试为单个建筑物添加多个条目,而建筑物字段不是主键,为什么这不起作用?

提前致谢

3 个答案:

答案 0 :(得分:2)

导致错误的原因是您正在使用'OneToOneField',它不允许您为'building_id'创建多个条目。

Check out - Django Documentation - OneToOne fields

您想使用'ForeignKey'字段创建具有相同'building_id'的多个条目,就像您在'User'字段中使用的一样。

以下是它的外观:

class BuildingProgressComments(models.Model):

    user = models.ForeignKey(User)
    building = models.ForeignKey('Building')
    date_created = models.DateTimeField(auto_now_add=True)
    comment = models.TextField(blank=True, null=True)

    class Meta:
        verbose_name='Building progress notes'
    def __unicode__(self):
        return unicode(self.building)

答案 1 :(得分:0)

您正尝试在OneToOneField中插入多个条目。就像它的名字所暗示的那样,这种类型的字段只能有一个条目。请改用ForeignKey

答案 2 :(得分:0)

试试这个:  要更改您的代码:

building = models.OneToOneField('Building')

building = models.ForeignKey('Building')

帮助提示:要了解更多信息,请点击此处OneToOneField