我有一个模型类:
class PysicalServer(models.Model):
serial_number = models.CharField(max_length=64) # I want to add the unique
name = models.CharField(max_length=16)
我知道使用primary_key可以设置唯一,但是serial_number不是我的id字段,我不能使用primary_key,还有其他属性我可以设置字段唯一吗?
答案 0 :(得分:3)
只需添加unique=True
serial_number = models.CharField(max_length=64, unique=True)
,请在此处查看更多信息https://docs.djangoproject.com/en/1.11/ref/models/fields/#unique
答案 1 :(得分:1)
关键字 unique=True
使 title CharField
独一无二。
class Book(models.Model):
title= models.CharField(max_length=300, unique=True)
def __str__(self):
return self.title
答案 2 :(得分:0)
正如上面其他 stackoverflowers 所提到的,您可以使用 unique=True
。但请注意,如果您想设置连接的唯一约束,这将不起作用。例如,如果您希望字段组合具有唯一性,则应使用 models.UniqueConstraint
,如下所示
class Book(models.Model):
title = models.CharField(max_length=300)
sub_title = models.CharField(max_length=300)
class Meta:
constraints = [
models.UniqueConstraint(fields=['title', 'sub_title'], name="%(app_label)s_%(class)s_unique")
]
def __str__(self):
return self.title