unique=True – Django内置字段验证
Django模型中的内置字段验证是所有Django字段预定义的验证。每个字段都有来自Django验证器的内置验证。人们也可以添加更多的内置字段验证,以应用或删除特定字段的某些约束。 unique=True 设置字段为唯一的,即一旦在一个字段中输入一个值,同样的值不能以任何方式输入该模型的任何其他实例中。它通常用于像卷号、雇员身份等应该是唯一的字段。
语法:
field_name = models.Field(unique=True)
Django内置字段验证unique=True说明
用一个例子来说明独特。考虑一个名为geeksforgeeks的项目,有一个名为geeks的应用程序。
在geeks应用程序的models.py文件中输入以下代码。我们将使用CharField对所有字段选项进行实验。
from django.db import models
from django.db.models import Model
# Create your models here.
class GeeksModel(Model):
geeks_field = models.CharField(
max_length = 200,
unique = True
)
在Django上运行了makemigrations和migrate并渲染了上述模型后,让我们在Django的管理界面上用字符串 “a “创建一个实例。 现在为了显示unique=True的约束,让我们尝试用相同的字符串再创建一个模型的实例。现在它将显示这个错误。
具有独特的先进概念
这是在数据库层面和通过模型验证来执行的。如果你试图保存一个在唯一字段中有重复值的模型,模型的save()方法将引发一个django.db.IntegrityError。这个选项对所有字段类型都有效,除了 ManyToManyField 和 OneToOneField。注意,当unique为True时,你不需要指定db_index,因为unique意味着创建一个索引。