DRF框架序列化组件——字段验证
Posted st-st
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DRF框架序列化组件——字段验证相关的知识,希望对你有一定的参考价值。
单个字段的验证
1.在序列化器里定义校验字段的钩子方法 validate_字段
2.获取字段的数据
3.验证不通过,抛出异常 raise serializers.ValidationError("校验不通过的说明")
4.验证通过,直接返回字段数据
# 对title字段进行验证
def validate_title(self,value):
# 判断value是否含有敏感字段
if "xx" in value:
# 存在敏感字段,抛出异常并附上自定义的原因
raise serializers.ValidationError("该字段含有敏感词")
# 不存在,则直接返回
return value
多个字段的验证
1.在序列化器定义validate方法
2.attrs是所有数据组成的字典
3.不符合抛出异常 raise serializers.ValidationError("校验不通过的说明")
# 对多个字段进行验证
def validate(self, attrs):
# arrrs是数据组成的字典
# 判断linux的数是否在linux分类
if "linux" in attrs.get(‘title‘) and attrs[‘category_post‘] == 2:
return attrs
else:
raise serializers.ValidationError("图书与分类不一致")
自定义验证器
使用:在字段添加 validators=[自定义验证器,]
# 自定义验证器
def my_validate(value):
if "xxx" in value:
raise serializers.ValidationError("该字段包含敏感词!!!")
else:
return value
title = serializers.CharField(max_length=32,validators=[my_validate,]) # 使用自定义验证器
三者的权重:
自定义验证器 > 单个字段的验证 > 多个字段的验证
以上是关于DRF框架序列化组件——字段验证的主要内容,如果未能解决你的问题,请参考以下文章
DRF框架serializer之ModelSerializer
drf框架 2 drf框架的请求生命周期(as_view和dispatch方法), 请求解析渲染响应异常, 序列化组件 ,ORM配置回顾(media文件配置),应用在settings.py中(代码片