序列化的一些用法

StringRelatedField

1、StringRelatedField返回的是字符串

2、返回一个具体的东西,需要在Category里加str方法

PrimaryKeyRelatedField

1、返回的是主键

2、访问文章时要加个read_only=True要不没法运行

3、分类下找文章要加many=True

HyperlinkedRelatedField

1、返回的是一个对应关系的模型超链接

2、一定要填的字段   view_name='category.detail',  view_name是返回超链接的,是 category.detail 的别名

read_only=True

lookup_field='id' 指的是按照数据库上的字段去找,默认值是pk

3、在所有文章需要使用序列化的地方都要加上上下文

在序列化里找到文章的地方 context={'requset': request}

4、多找一 :一定要记得加many=True

SlugRelatedField

1、返回的是model对应的一个字段

2、slug_field='name'  返回的分类的名字

slug_field='   ' 指定model里字段的某一个值来返回

HyperlinkedIdentityField

1、返回指定的超链接

2、view_name   、lookup_field        必传的参数

HyperlinkedModelSerializer

1、返回的也是超链接

2、只不过跟上面继承的类不一样

3、额外字段extra_kwargs可以使ModelSerializer添加或修改原有的选项参数

序列化嵌套

两个序列化嵌套一起

depth

可以用来深度遍历   建议写到二到三层

只要有数据关联就会找另一个数据序列化出来

SerializerMethodField

这个属性可以让我们自定义一些属性

eg:想统计每个分类下有多少篇文章

source

1、序列化的时候指定数据源

2、具体属性返回什么样的值由to_representation决定

3、可以自定义ChoiceDisplayField 让支持可读可写

to_representation方法

to_representation决定每个字段的具体返回的格式

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容