1. 程式人生 > >django serializer 定制error_message

django serializer 定制error_message

user ror span lds manager div bsp exists except

1,在字段上定制字段信息的判斷

class CreateManagerSerializers(serializers.ModelSerializer):
    username = serializers.CharField(validators=[UniqueValidator(
        queryset=models.Manager.objects.all(),
        message=名稱重復
    )])
    password = serializers.CharField(write_only=True)

==>在傳入庫裏面已經有的名字時,顯示錯誤信息

{
"username": [
"名稱重復"
]
}

2,在Meta中定制錯誤信息,效果和字段上定制一樣


class Meta:
model = models.Manager
fields = [‘username‘, ‘password‘, ‘email‘, ‘mobile_number‘, ‘role_num‘, ‘channel‘]
extra_kwargs = {
‘username‘:{‘validators‘:[UniqueValidator(
queryset=models.Manager.objects.all(),
message=‘名稱重復‘)]},
‘email‘: {‘validators‘: [UniqueValidator(
queryset=models.Manager.objects.all(),
message=‘email重復‘)]},
}


==>錯誤信息和上面一樣

{
"username": [
"名稱重復"
],
"email": [
"email重復"
]
}

3,利用valition_字段 raise報錯信息

class CreateManagerSerializers(serializers.ModelSerializer):
    username 
= serializers.CharField() password = serializers.CharField(write_only=True) def validate_username(self,value): from rest_framework.exceptions import ValidationError flag=models.Manager.objects.filter(username=value).exists() if flag: raise ValidationError(用戶名稱重復) return value

==>報錯信息

{
"username": [
"用戶名稱重復"
],
"email": [
"email重復"
]
}

django serializer 定制error_message