你好,我正在测试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
,还是我必须声明它?
1条答案
按热度按时间a8jjtwal1#
primary_key
**参数的文档中,我们看到:如果为
True
,则此字段是模型的主键。如果您没有为模型中的任何字段指定
primary_key=True
,Django会自动添加一个AutoField
来保存主键,所以您不需要在任何字段上设置primary_key=True
,除非您想覆盖默认的主键行为。primary_key=True
表示null=False
和unique=True
**。一个对象上只允许有一个主键。