Django Rest Framework 序列化(中)

Django Rest Framework 序列化(上)
数据库


1、进一步使用 Serializerapache

① 路由微信


② 视图url


③ 使用 serializerspa

# choices 字段显示user_type = serializers.CharField(source="get_user_type_display")# 自定义 serializer 中的 key 值pwd = serializers.CharField(source="password")# 关联对象属性group_title = serializers.CharField(source="group.title")# 多对多关系roles = serializers.CharField(source="roles.all")# 表示自定义方法,显示 queryset 对象详情roles_info = serializers.SerializerMethodField()



  • 若是没有指定在 Field 中没有定义 source 参数的时候,就自动与数据库 models 定义的字段进行匹配,如上面的 username 字段。在定义字段后,Serializer 类中能够自定义属性,如 type。.net

  • models 中是以 choice 定义时:须要定义 source 参数,定义 get_字段名_display 才能获取数据,这与在模板语言中的用法同样,如上面的 user_type。3d

  • 外键关联的时候,直接 外键字段名.属性 的方式定义传参给 source 参数便可,如上面的 group.title。code

  • 对于 roles 字段,想直接获取全部的对象,可是没法作到细粒度的将对象的全部属性展现出来,只能获取到 QuerySet 对象。对象

  • 自定义字段,处理数据,如 roles_info 获取全部的 role 对象的属性,处理数据能够定义方法,方法名格式为 get_属性,并 return 最终返回值。blog

本文分享自微信公众号 - 数据云团(SmartData)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索