前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django Rest Framework 序列化(中)

Django Rest Framework 序列化(中)

作者头像
小团子
发布2019-07-18 11:41:14
9910
发布2019-07-18 11:41:14
举报
文章被收录于专栏:数据云团数据云团

Django Rest Framework 序列化(上)

一、进一步使用 Serializer

① 路由

② 视图

③ 使用 serializer

代码语言:javascript
复制
# 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。
  • 当 models 中是以 choice 定义时:需要定义 source 参数,定义 get_字段名_display 才能获取数据,这与在模板语言中的用法一样,如上面的 user_type。
  • 外键关联的时候,直接 外键字段名.属性 的方式定义传参给 source 参数即可,如上面的 group.title。
  • 对于 roles 字段,想直接获取所有的对象,但是无法做到细粒度的将对象的所有属性展示出来,只能获取到 QuerySet 对象。
  • 自定义字段,处理数据,如 roles_info 获取所有的 role 对象的属性,处理数据可以定义方法,方法名格式为 get_属性,并 return 最终返回值。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档