django serializer 定制error_message


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重復"
]
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM