class BlogListSerializer(serializers.Serializer):
id = serializers.IntegerField()
user = BlogUserInfoSerializer()
title = serializers.CharField()
like_user = serializers.ManyRelatedField(serializers.SlugRelatedField(slug_field="username", source="user_id"),
queryset=User.objects.all(), source="follow")
topic_name = serializers.SlugRelatedField(slug_field="name", source="topic", queryset=Topic.objects.all())
create_at = serializers.DateTimeField() class Blog(models.Model):
follow = models.ManyToManyField(User, verbose_name="关注", related_name="follow_blog")
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="blog")
title = models.CharField(max_length=100)
content = models.TextField(max_length=200000)
topic = models.ForeignKey(Topic, null=True, verbose_name="话题", on_delete=models.CASCADE)
create_at = models.DateTimeField(verbose_name="创建时间", auto_now_add=True)

class Topic(models.Model):
name = models.CharField(verbose_name="名称", max_length=100)
create_at = models.DateTimeField(verbose_name="创建时间", auto_now_add=True)

  

返回结果如下

{
"id": 158,
"user": {
"id": 50,
"avatar": "https://xxx.xxx.cn/media/191b6193972a439e9886187f249bd2d9.jpg",
"username": "语家",
"sex": 2
},
"title": "想开个童装店?",
"like_user": [
"13800138000"
],
"topic_name": "#你们攒钱为了什么#",
"create_at": "2018-10-15 16:21:36"
}

  

django rest_framework serializer的ManyRelatedField 和 SlugRelatedField使用的更多相关文章

  1. Python之Django rest_Framework(2)

    实例化: v1 = ["view.xxx.path.Role","view.xxx.path.Group",] 可以循环,循环出来的每一个不能实例化 如果把v1 ...

  2. Rest_framework Serializer 序列化 (含源码浅解序列化过程)

    目录 Rest_framework Serializer 序列化 序列化与反序列化中不得不说的感情纠葛 三角恋之 save/update/create 四角恋之 序列化参数instance/data/ ...

  3. Django rest_framework 实用技巧

    前言: 最近工作中需要用到Django rest_framework框架做API, 边学边写,记录了一些实际工作中需要用到的功能,不是很全也不系统,以后需要什么功能可以在这查询. 后续还会更新其它的用 ...

  4. django restframework serializer 增加自定义字段

    在使用django restframework serializer 序列化在django中定义的model时,有时候我们需要额外在serializer中增加一些model中没有的字段.有两种方法实现 ...

  5. Python之Django rest_Framework框架源码分析

    #!/usr/bin/env python # -*- coding:utf-8 -*- from rest_framework.views import APIView from rest_fram ...

  6. 七、django rest_framework源码之视图

    1 绪言 当大家看大这篇博文的时候,应该对Django rest_framework中的CBV有所了解了,大致来说就是通过定义类来继承APIView类,并在类中定义get.post.put.delet ...

  7. 五、django rest_framework源码之版本控制剖析

    1 绪论 Djangorest_framework的版本控制允许用户更改不同客户端之间的行为,且提供了许多不同的版本控制方案.版本控制由传入的客户端请求确定,可以基于请求URL,也可以基于请求标头. ...

  8. 四、django rest_framework源码之频率控制剖析

    1 绪言 权限判定之后的下一个环节是访问频率控制,本篇我们分析访问频率控制部分源码. 2 源码分析 访问频率控制在dispatch方法中的initial方法调用check_throttles方法开始. ...

  9. 二、django rest_framework源码之认证流程剖析

    1 绪言 上一篇中讲了django rest_framework总体流程,整个流程中最关键的一步就是执行dispatch方法.在dispatch方法中,在调用了一个initial方法,所有的认证.权限 ...

随机推荐

  1. JVM大作业5——指令集

    JVM的每一个线程都有一个虚拟机栈,方法调用时,JVM会在虚拟机栈内为该方法创建一个栈帧. 一条线程,只有正在执行的方法对应的栈帧时可活动的,这个栈帧被称为当前栈帧,当前栈帧对应的方法被称为当前方法, ...

  2. Google谷歌在根据流量统计分析当年的2008年汶川大地震

    这是一张2008年的老图,Google当时的博文说道:"当我们依照惯例整理和分析谷歌搜索引擎的流量数据时,一条从未见过的曲线出现在我们面前.当意识到发生了什么事情时,我们的眼睛湿润了.&qu ...

  3. 如何建立一个完美的 Python 项目

    原文地址:How to set up a perfect Python project 原文作者:Brendan Maginnis 译者:HelloGitHub-丫丫 校对者:HelloGitHub- ...

  4. Nginx 前端项目配置 包含二级目录和接口代理

    Nginx是目前用的比较多的一个前端服务器 其优点是配置简单修改一下server就能用 并发性能比较好,具体怎么好就看这个吧 开撸 1.找到nginx (liunx系统,已安装) whereis ng ...

  5. Activiti7 任务人员动态分配(理论)

    之前一直用的流程模型都是,固态的,写死的 由于固定分配方式,任务只能一步一步执行,执行到每一个任务将按照bpmn的配置去分配任务负责人.这显然在实际开发中是不可能的 所以我们需要动态分配人员 表达式分 ...

  6. Java中nextInt和nextLine同时使用出现的问题

    代码: package com.ins1; import java.util.*; public class test { public static void main(String[] args) ...

  7. python - 模块调用

    基础 调用模块常见的两种方法 import [模块名] from [模块名] import [属性/方法] 进阶用法 调用父级目录下模块 背景介绍 目录new2(b2.py)调用上级目录new1(b1 ...

  8. git多账号使用

    1 背 景 在公司上班的员工会同时拥有两个git账号, 一个是公司内部的, 仅允许工作时使用; 另一个是个人的, 常用于日常的学习记录. 此时, 面临的问题是如何在一台电脑(客户端)上正常使用两个账号 ...

  9. pytest测试框架 -- assert断言和fixture固件

    一.断言 (1)使用assert语句进行断言 # test_run.py @pytest.mark.assert def test_assert(self): r = requests.get(&qu ...

  10. linux下清空文件内容的3个命令

    1.使用echo "" > file_name,直接将空字符串重定向并覆盖到目标文件 2.使用cat /dev/null > file_name,读取dev目录下的一个 ...