34.HyperLinkedModelSerializer详解
- HyperLinkedModelSerializer继承ModelSerializer,只是自动多出了一个url字段,其他都是一样的
- 不同之处在于使用超链接来表示关联关系而不是主键
- 默认情况下HyperLinkedModelSerializer序列化器包含一个url字段
- url字段使用HyperlinkedIdentityField字段表示,模型的任何关联都使用该字段
 #源码
 class HyperlinkedModelSerializer(ModelSerializer):
    serializer_related_field = HyperlinkedRelatedField
    def get_default_field_names(self, declared_fields, model_info):
        # 覆盖重写了ModelSerializer中的方法
        # 只是在 第一个变量使用了url名字
        return (
            [self.url_field_name] +
            list(declared_fields) +
            list(model_info.fields) +
            list(model_info.forward_relations)
        )
    def build_nested_field(self, field_name, relation_info, nested_depth):
        # 覆盖重新ModelSerializer方法,嵌套的子类依然继承的是HyperLinkedModelSerializer
        class NestedSerializer(HyperlinkedModelSerializer):
            class Meta:
                model = relation_info.related_model
                depth = nested_depth - 1
                fields = '__all__'
        field_class = NestedSerializer
        field_kwargs = get_nested_relation_kwargs(relation_info)
        return field_class, field_kwargs #示例
 # 继承HyperlinkedModelSerializer
 class TextSerializer(HyperlinkedModelSerializer):
    auth = AuthSerializer()
    class Meta:
        model = Text
        # 设置url字段
        fields = ('url','id', 'title', 'content', 'auth', 'category', 'created')
'''
使用HyperLinkedModelSerializer生成的url,字段名默认是url
如果想要修改的话需求在setting中指定,比如我们要把url字段名改成to_link
'''
REST_FRAMEWORK = {
    'URL_FIELD_NAME':'to_link'
}34.HyperLinkedModelSerializer详解的更多相关文章
- Jmeter系列(34)- 详解 Counter 计数器
		如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 简单介绍 计数器的作用:循环递增生成数 ... 
- 第15.34节 PyQt(Python+Qt)入门学习:containers容器类部件QStackedWidget堆叠窗口部件详解
		老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 StackedWidget堆叠窗口部件为一系列窗口部件的堆叠,对应类为QStackedWi ... 
- Java 字符串格式化详解
		Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ... 
- 猫哥网络编程系列:详解 BAT 面试题
		从产品上线前的接口开发和调试,到上线后的 bug 定位.性能优化,网络编程知识贯穿着一个互联网产品的整个生命周期.不论你是前后端的开发岗位,还是 SQA.运维等其他技术岗位,掌握网络编程知识均是岗位的 ... 
- [原创]mybatis详解说明
		mybatis详解 2017-01-05MyBatis之代理开发模式1 mybatis-Dao的代理开发模式 Dao:数据访问对象 原来:定义dao接口,在定义dao的实现类 dao的代理开发模式 只 ... 
- Nginx配置文件nginx.conf中文详解(转)
		######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_ ... 
- Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
		转载:http://freeloda.blog.51cto.com/2033581/1288553 大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负 ... 
- 好用的wget命令从下载添加环境变量到各参数详解
		本文是因为(笔者使用的windows系统)使用过好几次wget后,始终存在各种细节问题,于是下定决定细致的研究一下,并记录下其中细节. 下载与安装 第一步:下载wget,网络地址:http://dow ... 
- Hadoop MapReduce执行过程详解(带hadoop例子)
		https://my.oschina.net/itblog/blog/275294 摘要: 本文通过一个例子,详细介绍Hadoop 的 MapReduce过程. 分析MapReduce执行过程 Map ... 
随机推荐
- 感谢有你!Apache DolphinScheduler 项目 GitHub star 突破 8k
			本周伊始,Apache DolphinScheduler 项目在 GitHub 上的 Github Star 总数首次突破 8K.目前,Apache DolphinScheduler 社区已经拥有 C ... 
- LuoguP3047 [USACO12FEB]附近的牛Nearby Cows(树形DP,容斥)
			\[f[u][step] = \begin{cases} C[u] & step = 0 \\ (\sum{f[v][step - 1]}) - f[u][step - 2] \cdot (d ... 
- Windows 电脑杀毒简单有效的方式
			Windows 电脑杀毒通常会选择杀毒软件,这样太笨重,且容易占内存和存在流氓软件侵入. 推荐使用 Windows 自带的恶意软件删除工具 按住 Win + R 键,弹出运行窗口,输入 mrt. 系统 ... 
- Flutter 开启 Windows、macOS 平台支持的命令
			Flutter 的多平台支持除了 Android 和 iOS 是默认开启的以外,比如 Windows.Linux 平台的支持需要手动开启. Flutter config 命令集中,有以下参数是对于平台 ... 
- 未来的可再生能源电网!FREEDM 论文阅读
			全文主旨[省时间快读] 背景: 论文标题:The Future Renewable Electric Energy Delivery and Management (FREEDM) System: T ... 
- HTML+JS+CSS 实现随机跳转到一个网址
			<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http ... 
- MapReduce计算流程
			MapReduce的计算流程 1.1 原始数据File The books chronicle the adventures of the adolescent wizard Harry Potter ... 
- java数组---多维数组
			多维数组 多维数组可以看成是数组的数组 比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组. 二维数组 public static void main(String[] args) { ... 
- MySQL插入重复数据
			MySQL中批量insert into时防止更新插入重复数据去重的方法,主要是讲到了ignore,Replace,ON DUPLICATE KEY UPDATE三种方法 方案一:使用ignore关键字 ... 
- 从 Linux 内核角度探秘 JDK NIO 文件读写本质
			1. 前言 笔者在 <从 Linux 内核角度看 IO 模型的演变>一文中曾对 Socket 文件在内核中的相关数据结构为大家做了详尽的阐述. 又在此基础之上介绍了针对 socket 文件 ... 
