在 Django 文档中,除了主键之外,如果另一个属性的设置“唯一”设置为 True,如果将具有相同属性的模型添加到数据库中,则会引发 IntegrityError(很像 PK被处理)。
但是,即使将 unique = True 设置为我的一个字段后,也不会引发 IntegrityErrors,并且在 manage.py shell 中,我公然保存具有相同字段的模型,其中 unique = True,这让我很高兴。
我的模型的 PK 未设置,即 AutoIncrementing Integer(我认为这可能是问题的一部分)。
这是我的 unique=True 字段。
url = models.URLField("The URL", unique=True)
这个模型没有其他值得注意的地方,没有外国关系,什么都没有。只是一个必须强制执行(但不是)的唯一字段,以及一个自动递增的 PK。
对于某些搜索引擎,PK 必须保持为自动递增整数。
这是模型的 SQLall:
BEGIN:
CREATE TABLE `Model_model` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`url` varchar(200) NOT NULL UNIQUE,
....
谢谢你。