Django--反序列化使用

本文介绍了Django中反序列化的验证过程,强调在反序列化时需调用is_valid()方法进行验证。验证失败返回False,并可通过errors属性获取错误详情。此外,讨论了三种验证方法:Validate_field、validators和validate方法,分别用于单个字段、自定义验证器及多个字段的验证。当验证失败且raise_exception=True时,会返回HTTP 400 Bad Request响应。
摘要由CSDN通过智能技术生成

反序列化使用

验证

利用之前的模型类进行验证,

>>> from booktest.models import BookInfo,HeroInfo
>>> from booktest.serializers import BookInfoSerializer
>>> from booktest.serializers import HeroInfoSerializer
>>> data = {'bpub_date':123}
>>> s = BookInfoSerializer(data= data)
>>> s.is_valid()
False
>>> s.errors
{'btitle': [ErrorDetail(string='This field is required.', code='required')], 'bpub_date': [ErrorDetail(string='Date has wrong format. Use one of these formats instead: YYYY[-MM[-DD]].', code='invalid')]}
>>> s.validated_data
{}

构造序列化器对象,并将要反序列化的数据传给data构造成参数,进行验证

使用序列化器进行反序列化时,需要对数据进行验证,才能获取验证成功的数据或者保存的模型类的对象

在获取反序列化的数据前,必须调用is_valid()方法进行验证,验证成返回True,失败返回False

验证失败之后,通过序列化器对象的errors属性获取错误信息,返回字典,包含错误的字段和字段的错误信息.如果是非字段错误,可以通过修改REST framework配置中的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值