Django验证器
作者:互联网
Django验证器
Django验证器可用于去重,逻辑判断等功能
validators
- UniqueValidator
- 此验证器可用于unique=True对模型字段强制实施约束。它需要一个必需的参数和一个可选messages参数:
- queryset required - 这是应该强制执行唯一性的查询集。
- message - 验证失败时应使用的错误消息。
- lookup - 用于查找具有验证值的现有实例的查找。默认为'exact'。
此验证器应该应用于序列化器字段,如下所示:
validators=[UniqueValidator(queryset=BlogPost.objects.all())]
- 此验证器可用于unique=True对模型字段强制实施约束。它需要一个必需的参数和一个可选messages参数:
- UniqueTogetherValidator
- 此验证程序可用于unique_together对模型实例强制实施约束。它有两个必需的参数和一个可选messages参数:
- queryset required - 这是应该强制执行唯一性的查询集。
- fields required - 应该创建唯一集合的字段名称列表或元组。这些必须作为序列化程序类的字段存在。
- message - 验证失败时应使用的错误消息。
class TaskSerializer(serializers.ModelSerializer):
class Meta:
model = Task
fields = ('name', 'keyword', 'user_id')validators = [ UniqueTogetherValidator( queryset=Task.all(), fields=['user_id', 'name'], message='相同任务名已存在' ), UniqueTogetherValidator( queryset=Task.all(), fields=['user_id', 'keyword'], message='相同关键字已存在' ), ]
- 此验证程序可用于unique_together对模型实例强制实施约束。它有两个必需的参数和一个可选messages参数:
可选字段
默认情况下,“一起唯一”验证会强制执行所有字段 required=True。在某些情况下,您可能希望显式应用于 required=False其中一个字段,在这种情况下,验证的所需行为是不明确的。
在这种情况下,您通常需要从序列化程序类中排除验证程序,而是在.validate()方法中或在视图中显式写入任何验证逻辑。
例如:
class BillingRecordSerializer(serializers.ModelSerializer):
def validate(self, data):
# Apply custom validation either here, or in the view.
class Meta:
fields = ['client', 'date', 'amount']
extra_kwargs = {'client': {'required': False}}
validators = [] # Remove a default "unique together" constraint.
自定义验证器
def judge(aaa):
if len(aaa) != 40:
print('长度不正确')
return
from xxx import judge
validators =
标签:验证,fields,required,queryset,Django,validators,message 来源: https://www.cnblogs.com/liuhuan086/p/11896970.html