1、StringRelatedField
返回一个字符串
{
“继承于”:“ModelSerializer”,
“说明”:“当查多的时传入一个many=True”,
“返回的数据”:“是由模型类里面的__str__方法决定的”
}
2、PrimaryKeyRelatedField
返回一个主键
{
“继承”:“ModelSerializer”,
“使用情况”:“需要传入read_only=True”
}
3、HyperlinkedRelatedField
返回一个超链接
{
“继承”:“ModelSerializer”,
“参数”:{
“view_name”:“路由的别名”,
“lookup_field”:“应该用于查找的目标上的字段。应该对应于引用视图上的 URL 关键字参数。默认值为 pk”,
“lookup_url_kwargs”:“查找字段对应的 URL conf 中定义的关键字参数的名称。默认使用与 lookup_field 相同的值”
}
}
4、SlugRelatedField
自定义返回属性
{
“继承”:“SlugRelatedField”,
“参数”:
{
"slug_field(“必传参数”):“返回字段的名字”,
}
}
5、HyperlinkedModelSerializer
返回一个超链接
{“继承”:“HyperlinkedModelSerializer”,
“传参方法”:“url"为字典的键”,
“url字典的值”:“view_name”:“路由的别名”,
“lookup_field”:“数据库字段的名字”,
“lookup_field_kwarg”:“生成超链接的字段”,
“使用情况”:“只可以多查少,不可以少查多”
extra_extra_kwargs
}
如果视图没有使用类视图的话,必须加上extra_extra_kwargs,或者使用restframework自己的路由,详情:https://www.jianshu.com/p/304ad5d02b76
7、depth = 2 (官方文档说可以查到第十层,一般介意为2-3层)
嵌套序列化关系模型
{
“继承方法”:“ModelSerializer”,
“使用方法”:“多的序列化里面传参(many = True)”
}
8、ModelSerializer
返回一个自己定义的字段
{
“SerializerMethodField”:“继承于ModelSerializer”,
“使用方法”:{
“需要自定义返回的字段”:“serializers.SerializerMethodField()”,
“返回结果的方法”:“定义一个方法,以get_自定义返回的字段”,
“传入的参数”:“self,obj(obj代表对象)”,
}
}
9、to_representation
序列化器的每个字段实际都是由该字段类型的to_representation方法决定格式的,可以通过重写该方法来决定格式。
{“继承”:“RelatedField”,
“使用方法”:{
“第一步”:“定义一个方法名:to_representation”,
“第二部”:“返回你需要返回的数据”,
}
10、source
返回一个指定的数据
{“继承”:“ModelSerializer”,
“使用方法”:{
“在序列化里面调用Charfield()”:“里面传入source”
}
}
来源:CSDN
作者:qq_33759361
链接:https://blog.csdn.net/qq_33759361/article/details/104774486