栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Django rest framework之HyperlinkedModelSerializer笔记(三)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django rest framework之HyperlinkedModelSerializer笔记(三)

除了用hyperlinks表示关系不一样以外,其它类似于modelserializer类。
serializer默认包含一个url字段代替主要关键字字段。这个url字段使用HyperlinkedIdentityField.

Absolute and relative URLs
  • 绝对路径
serializer = AccountSerializer(queryset, context={'request': request})
  • 相对路径
serializer = AccountSerializer(queryset, context={'request': None})
How hyperlinked views are determined

默认情况下,hyperlinks按‘{model+name}-detail'的方式匹配,通过pk寻找instance.

  • extra_kwargs设置view_name和lookup_field
class AccountSerializer(serializers.HyperlinkedModelSerializer):
    class meta:
 model = Account
 fields = ('account_url', 'account_name', 'users', 'created')
 extra_kwargs = {
     'url': {'view_name': 'accounts', 'lookup_field': 'account_name'},
     'users': {'lookup_field': 'username'}
 }
  • 字段中指明
class AccountSerializer(serializers.HyperlinkedModelSerializer):
    url = serializers.HyperlinkedIdentityField(
 view_name='accounts',
 lookup_field='slug'
    )

打印HyperlinkedModelSerializer实例的repr是一种特别有用的方法来准确检查关系是否按预期映射

Changing the URL field name

URL_FIELD_NAME

ListSerializer

设置many=True或则继承了ListSerializer就都在使用ListSerializer.
allow_empty属性默认true,判断是否允许空值。
list_serializer_class操作添加到meta里面可以定制对对象的操作.

baseSerializer

baseSerializer类可用于轻松支持替代序列化和反序列化样式
在这样做时,您会注意到的唯一的区别是baseSerializer类不会在可浏览的API中生成HTML表单。 这是因为他们返回的数据不包括所有的字段信息,这将允许每个字段被渲染成一个合适的HTML输入。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/223545.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号