1.validators 特殊的可以放下面

from.validators importUniqueTogetherValidatorclassExampleSerializer(serializers.Serializer):# ...classMeta:# ToDo items belong to a parent list, and have an ordering defined# by the 'position' field. No two items in a given list may share# the same position.=[UniqueTogetherValidator(=ToDoItem.objects.all(),=['list','position'])]

放上面也可以:

name = serializers.CharField(label='名称',max_length=20, help_text='名称', validators=[UniqueValidator(queryset=Projecgts.object.all(),message='名称重复'),])

 

2.自定义 validators:

from importlib._common import _
from rest_framework.serializers import ModelSerializer
from ..models import Roob_Titles
from rest_framework import serializers
def my_validator(value):
if value>5:
raise serializers.ValidationError('自定义validators->这个长度不可以大于5')

class RoobSerializer(ModelSerializer):
""" validators ,validate validate_col,"""

r_id = serializers.IntegerField(validators=[my_validator])
r_date = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", required=True)

  

3. validate 全字段和单字段:

#  单个的
class RoobSerializer(ModelSerializer):
""" validators ,validate validate_col,"""

r_id = serializers.IntegerField()
r_date = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", required=True)

def validate_r_id(self, v):
if v>5:
raise serializers.ValidationError("单个字段验证猜想 {}".format(v))
return v

class Meta:
model = Roob_Titles
fields = '__all__'
# validators = []
error_messages = {
'r_date': {'required': 'date can not empty ',
'invalid': 'date is not invalid',
'date': _('Expected a datetime but got a date.'),
'make_aware': _('Invalid datetime for the timezone "{timezone}".')
}
}

# 批量的:
class RoobSerializer(ModelSerializer):
""" validators ,validate validate_col,"""

r_id = serializers.IntegerField()
r_date = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", required=True)
#
def validate(self, v):
if v.get('r_id')>5:
raise serializers.ValidationError("批量验证猜想 {}".format(dict(v)))
return v

class Meta:
model = Roob_Titles
fields = '__all__'
# validators = []
error_messages = {
'r_date': {'required': 'date can not empty ',
'invalid': 'date is not invalid',
'date': _('Expected a datetime but got a date.'),
'make_aware': _('Invalid datetime for the timezone "{timezone}".')
},
# 'r_id':{
#
# }
}

 

其次 error_messages: