美文网首页
序列化,序列化高级

序列化,序列化高级

作者: Ancestor楠 | 来源:发表于2020-04-16 14:20 被阅读0次

    序列化

    序列化:把对象(Dict)转成可传输数据(JSON)

    反序列化:把传输数据(json)转成对象(Dict)

    序列化高级

    StringRelatedField

    如果想让序列化变成字符串,那这个字段就变成了只读属性,反序列化就不支持了

    字段名 必须在模型里面

    StringRelatedField 将返回一个对应关系 model 的 unicode() 方法的字符串。

    PrimaryKeyRelatedField

    如果多个需要加many=True   read_only=True

    如果单个需要加read_only=True

    HyperlinkedRelatedField

    使用 HyperlinkedRelatedField 将返回一个超链接,该链接指向对应关系 model 的详细数据,view-name 是必选参数,为对应的视图生成超链接。

    错误解决:

    在视图中所有使用CategorySerializerde的地方加上context={'request': request}

    serializer = CategorySerializer(categorys, many=True, context={'request': request})

    SlugRelatedField

    使用 SlugRelatedField 将返回一个指定对应关系 model 中的字段,需要参数 slug_field 中指定字段名称。

    HyperlinkedIdentityField

    使用 HyperlinkedIdentityField 将返回指定 view-name 的超链接的字段。

    HyperlinkedModelSerializer

    HyperlinkedModelSerializer 类与 ModelSerializer 类相似,只不过它使用超链接来表示关系而不是主键。

    嵌套序列化关系模型

    顾名思义就是序列化里面有另一个序列化类

    depth

    这个字段可以用来深度遍历

    SerializerMethodField

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

    source

    序列化的时候指定数据源

    to_representation方法

    序列化器的每个字段实际都是由该字段类型的to_representation方法决定格式的,可以通过重写该方法来决定格式。

    相关文章

      网友评论

          本文标题:序列化,序列化高级

          本文链接:https://www.haomeiwen.com/subject/zfnzmhtx.html