Django:“primary_key=True”也意味着“唯一”吗?

gr8qqesn  于 2023-02-10  发布在  Go
关注(0)|答案(1)|浏览(130)

你好,我正在测试Django认证和嵌套用户数据。我为我的用户创建了一个简单的MyProfil模型。我想测试定制id并将primary_key=True设置为id = models.UUIDField
models.py

class MyProfil(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid4, editable=False)
    owner = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    aboutme = models.TextField(max_length=300, blank=True)
    city = models.TextField(max_length=300, blank=True)

到目前为止,一切都对我有利,但我有一个问题,我不能回答自己,即使在阅读了django的文件。

    • 问题**

我的id字段上的primary_key=True是否也表示unique,还是我必须声明它?

a8jjtwal

a8jjtwal1#

    • 是**。因为主键表示可以唯一标识对象的值。在有关**primary_key**参数的文档中,我们看到:
    • 一米一米一**

如果为True,则此字段是模型的主键。
如果您没有为模型中的任何字段指定primary_key=True,Django会自动添加一个AutoField来保存主键,所以您不需要在任何字段上设置primary_key=True,除非您想覆盖默认的主键行为。

    • primary_key=True表示null=Falseunique=True**。一个对象上只允许有一个主键。

相关问题