django.db.utils.IntegrityError: (1062, "Duplicate entry 'Restauarant' for key 'restaurants_restaurant_name_address_id_e074fa2e_uniq'")
以上是错误。如餐馆模型所示,我已经定义了地址和名称应该是唯一的。虽然当我创建一家餐馆时,如果名称和地址的组合是唯一的,但它们中的任何一个都与另一个餐馆对象相同,那么这就失败了。例如。如果在“35 Something Else Street”有一个像“餐厅”这样的现有物品,“10 Something Street”的“餐厅”将会失败。任何建议都会很棒,谢谢。
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'
))
答案 0 :(得分:0)
您的代码中存在可能导致错误的拼写错误。
public partial class SomeViewController : UIViewController,sampleDelegate{
public void openSuggestorView(){
SuggesterTableViewController suggestVC = (SuggesterTableViewController)this.Storyboard.InstantiateViewController("SuggestTableVC");
suggestVC._workerDelegate = new WeakReference<sampleDelegate>(this);
}
public void GetSelectedItem(){
Console.WriteLine("Callback called");
}
}
应该是一个元组元组,但是在内部元组括号后你错过了一个逗号。
这可能会有所帮助:
unique_together
现在,当您重新运行迁移时,可能不会收到该错误。
同样很快 - 假设slug是从名称派生的,在unique_together = ((
'name',
'street_number',
'route',
'locality',
'administrative_area_level_1',
'postal_code',
'country'
), )
而不是slug
设置唯一性可能更有意义。由于案例的变化,你不希望某些东西超越唯一约束。