-2

我不明白这一点。我在这里看到帖子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。因此,我没有将 slug 放入管道中。如果它期望创建 slug 并且因为它已经存在而犹豫不决,为什么它不期望创建所有其他密钥?如果它不在管道中,为什么它现在要创建它?因为它期望创造它?所以我应该删除该字段上的自动创建?那么它是如何创建的呢?我确实希望我的蛞蝓是独一无二的。

对我来说,这似乎是循环和疯狂的,但这有什么区别呢?没有任何。感谢您的帮助。

4

1 回答 1

0

对于任何追随我的人,我都有解决方案。我需要做的就是将 null=True 添加到 slugfield 中。它不是真正的重复键。它是一个重复值,'',表示为 slug['']。在此处查看 Alasdair 的答案: Django unique, null and blank CharField give 'already exists' error on Admin page

于 2018-02-27T14:42:06.223 回答