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)
的时候通过钩子去执行,所以不需要手动执行这两个方法。
上一篇:nginx和分布式php-fpm
下一篇:django自定义中间件处理