【发布时间】:2017-07-30 07:17:20
【问题描述】:
django.db.utils.IntegrityError: (1062, "Duplicate entry 'Restauarant' for key 'restaurants_restaurant_name_address_id_e074fa2e_uniq'")
以上是错误。如餐厅模型所示,我已定义地址和名称应该是唯一的。虽然当我创建餐厅时,如果名称和地址的组合是唯一的,但它们中的任何一个与另一个餐厅对象相同,那么这将失败。例如。如果在“35 Something Else Street”存在像“Restaurant”这样的现有对象,“10 Something Street”的“Restaurant”将会失败。任何建议都会很棒,谢谢。
class Restaurant(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=128)
street_number = models.CharField(max_length=10)
route = models.CharField(max_length=128)
locality = models.CharField(max_length=116) # 2* 58 (longest place name)
administrative_area_level_1 = models.CharField(max_length=116, default=None)
postal_code = models.CharField(max_length=12)
country = CountryField()
slug = models.SlugField(max_length=128)
profile_image = models.ImageField(upload_to='profile_images', blank=True)
menu = models.ManyToManyField(Menu)
favourites = models.IntegerField(default=0, editable=False)
is_active = models.BooleanField(default=True)
class Meta:
# ensures unique combination, prevents duplicate 'restaurants'
unique_together = ((
'name',
'street_number',
'route',
'locality',
'administrative_area_level_1',
'postal_code',
'country'
))
【问题讨论】:
-
您的错误消息包含
address但不包含您的代码,所以我怀疑您之前设置了不同的约束并且没有正确迁移。 -
谢谢,我找到了我犯了这个错误的地方,但我无法修复它,因为它会引发错误迁移该更改:ValueError:为restaurants_restaurant(name,address_id)找到错误的约束数(0) )
-
请注意,python 代码在代码 sn-p 中不会得到正确的格式。请改用代码示例。
标签: python django python-3.x web django-models