Python Uniqify Django模型具有唯一属性,而不是使用PK

Python Uniqify Django模型具有唯一属性,而不是使用PK,python,django,Python,Django,Django文档中指出,除了主键之外,如果另一个属性的设置“unique”设置为True,则如果将具有相同属性的模型添加到数据库中,则会抛出IntegrityError(与PK的处理方式非常类似) 但是,即使将unique=True设置为我的一个字段,也不会抛出integrityError,在manage.py shell中,我公然使用unique=True的相同字段保存模型,这让我可以 我的模型的PK是未设置的,也就是自动递增的整数(我认为这可能是问题的一部分) 这是我的唯一=真实字段 url

Django文档中指出,除了主键之外,如果另一个属性的设置“unique”设置为True,则如果将具有相同属性的模型添加到数据库中,则会抛出IntegrityError(与PK的处理方式非常类似)

但是,即使将unique=True设置为我的一个字段,也不会抛出integrityError,在manage.py shell中,我公然使用unique=True的相同字段保存模型,这让我可以

我的模型的PK是未设置的,也就是自动递增的整数(我认为这可能是问题的一部分)

这是我的唯一=真实字段

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,
    ....

谢谢。

尝试删除并重新创建数据库。如果在创建数据库表后添加
unique
约束,则不会在数据库中更新该约束。如果不想丢失数据,则需要在数据库中手动添加属性。

是否指定了db_索引?并非所有数据库供应商都以相同的方式处理约束。您使用的是sqlite、mysql还是postgres?mysql作为数据库,我没有指定db索引,但我认为您不需要,它是默认的