DRF框架—序列化器中的字段校验规则(补充)

导读:本篇文章讲解 DRF框架—序列化器中的字段校验规则(补充),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一、怎么校验创建的项目名是否是唯一的,当项目名name字段不唯一,怎么设置提示信息?

方法:导入UniqueValidator
from rest_framework.validators import UniqueValidator
1)、可以在序列化器字段上使用validators指定自定义校验规则
2)、validators必须得为序列类型(一般为列表),在列表中可以添加多个校验规则
3)、DRF框架自带UniqueValidator校验器必须得使用queryset指定查询集对象,用于对该字段进行校验
4)、UniqueValidator校验器,可以使用message指定自定义报错信息
在这里插入图片描述
尝试输入同名项目检验下,如下图所示:
在这里插入图片描述

二、项目名称中必须得包含“项目”2字

添加自定义校验规则
1)、可以在类外面自定义校验函数
2)、第一个参数为待校验的值
3)、如果校验不通过,必须得抛出serializers.ValidationError(‘报错信息’)异常,同时可以指定具体得报错信息
4)、需要将校验函数名放置到某一个字段的 validators列表中(不加括号)
在这里插入图片描述
在这里插入图片描述

三、单字段校验

1)、可以在序列化器类中对单个字段进行校验
2)、但字段的校验方法名称,必须把validate_作为前缀,加上待校验得字段名,如:validate_待校验得字段名
3)、如果校验不通过必须得返回serializers.ValidationError(‘具体得报错信息’)
4)、如果校验通过,往往将校验之后得值返回
5)、如果该字段在定义时添加得校验规则不通过,那么是不会进行单字段校验的,如果能对单字段进行校验说明上面是校验通过的。
6)、必须返回attr
在这里插入图片描述

四、多字段校验

1)、可以在序列化器类中对多个字段进行联合校验
2)、使用固定得validate方法,会接收上面校验通过之后的字典数据
3)、当所有字段定义时添加的校验规则都通过,并且每个字典得单字段校验通过得情况下,才会调用validate方法
4)、必须返回attrs
在这里插入图片描述

五、to_internal_value方法

1、to_internal_value方法,是所有字段开始进行校验时的入口方法(最先调用的方法)
2、会依次对序列化器类的各个序列化器字段进行校验:先执行字段定义时的校验规则
3、首先对字段类型进行校验——》依次验证validators列表中的校验规则——》从右到左验证其他的校验规则——》调用单字段校验方法(如果有定义)
to_internal_value方法调用结束——》调用多字段联合调用validate方法

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74420.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!