我不明白这一点。我在这里看到了帖子Django - Slugs - Key (slug)=() is duplicated和Django: Key (slug)=(*) already exists。
这是我的错误消息:
django.db.utils.IntegrityError:重复键值违反唯一约束“caseAT_case_slug_key” 细节:键(slug)=()已经存在。
在文档中说: https://docs.djangoproject.com/en/1.8/howto/writing-migrations/#migrations-that-add-unique-fields 应用“普通”迁移会向具有现有行的表添加唯一的不可为空字段会引发错误,因为用于填充现有行的值仅生成一次,从而打破了唯一约束。
但这不是迁移。这是一条djangoitem管道。该模型具有从标题自动创建的slug。因此,我没有在管道中放入slu ..如果它期望创建slug,并因为它已经存在,那么为什么它还没有期望创建所有其他键?如果它不在管道中,为什么它现在尝试创建它?因为它期望创造它吗?所以我应该删除该字段上的自动创建?然后如何创建它?我确实希望我的slu is是独一无二的。
这对我来说似乎是圆形和疯狂的,但这有什么不同呢?没有。您的帮助表示赞赏
答案 0 :(得分:0)
对于任何追随我的人,我都有解决方案。我需要做的就是向slugfield添加null = True。它不是真正的重复键。它是一个重复值'',表示为slug ['']。请参阅Alasdair的答案: Django unique, null and blank CharField giving 'already exists' error on Admin page