DRF框架(中)

本文详细介绍了Django REST Framework(DRF)框架中的序列化过程,包括如何重写to_representation方法自定义输出格式,以及在多对一和一对多关系中的应用。同时,文章还探讨了反序列化过程,包括验证、错误处理和数据保存。通过validate方法和validators进行自定义验证,并展示了ModelSerializer的使用,如指定字段、排除字段、只读字段以及嵌套关系字段的处理。
摘要由CSDN通过智能技术生成
'''
5.重写to_representation方法
序列化器的每个字段实际都是由该字段的to_representation方法决定展示格式的,可以通过重写该方法来决定格式
注意,to_representations方法不仅局限在控制关联对象格式上,适用于各个序列化器字段类型
class BookRelateField(serializers.RelatedField):
    """自定义新的关联字段"""
    def to_representation(self, value):
        return 'Book: %d %s' % (value.id, value.btitle)


hbook = BookRelateField(read_only=True)
结果:{'hbook': 'Book: 2 天龙八部'}




重点: 上边的都是 多对一 关系 即使用hbook
    如果是 一对多 关系 即使用 heroinfo_set.all  此时关联字段类型通用,即上边的字段通用,但是需要添加many=True的参数
heroinfo_set = serializers.PrimaryKeyRelatedField(read_only=True, many=True)  


'''




'''
6.反序列化 : 接收前端传过来的json处理是由 Parser解析器 来执行,反序列化只进行验证和保存


使用: 
data = {'bpub_date
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值