Django REST framework Serializer自定义验证

Serializer

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from rest_framework import serializers
from rest_framework.exceptions import ValidationError
from .models import UserModel
class RedisSerializers(serializers.ModelSerializer):
class Meta:
model = UserModel
fields = ("name", "age", "nums", "c_time")
def validate(self, attrs):
"""自定义所以字段验证"""
return attrs
def validate_age(self, data):
"""通过钩子自定义字段验证,validate_[字段名称]"""
if not data:
raise ValidationError(detail="输入错误")
return data

validate 是所有字段的集中验证

1
2
3
def validate(self, attrs):
"""自定义所以字段验证"""
return attrs

validate_[字段名称] 验证指定字段

1
2
3
4
5
def validate_age(self, data):
"""通过钩子自定义字段验证,validate_[字段名称]"""
if not data:
raise ValidationError(detail="输入错误")
return data

以上方法都是在serializer.is_valid(raise_exception=True)的时候通过钩子去执行,所以不需要手动执行这两个方法。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器