小编典典

如果您合理地设计响应格式,则在Django REST Framework中会发现事情变得更容易。

目前似乎有点模糊,但我建议如下:

{

"tweets": [

{"tweet_attr_A": value_1, ...}, // first tweet

{"tweet_attr_A": value_2, ...}, // second tweet

//etc

],

"articles": [

{"id": 1, ...}, // first article

{"id": 2, ...}, // second article

//etc

]

}

我们可以用三个序列化器来表达这一点,例如:

class TweetSerializer(serializers.ModelSerializer):

class Meta:

model = Tweet

class ArticleSerializer(serializers.ModelSerializer):

class Meta:

model = Article

class TimelineSerializer(serializers.Serializer):

tweets = TweetSerializer(many=True)

articles = ArticleSerializer(many=True)

然后,因为我们使用的模型不止一个,所以最简单的是定义自己的自定义视图集,而不是尝试将其塞入DRF的神奇ModelViewSet类型中。

http://www.django-rest-framework.org/api-

guide/viewsets/#example

首先,我们需要一个对象类型传递给我们的TimelineSerializer。它应该具有两个属性:tweets和articles

from collections import namedtuple

Timeline = namedtuple('Timeline', ('tweets', 'articles'))

然后,我们将定义自定义视图集以获取推文和文章,实例化一个Timeline对象并返回TimelineSerializer数据:

class TimelineViewSet(viewsets.ViewSet):

"""

A simple ViewSet for listing the Tweets and Articles in your Timeline.

"""

def list(self, request):

timeline = Timeline(

tweets=Tweet.objects.all(),

articles=Article.objects.all(),

)

serializer = TimelineSerializer(timeline)

return Response(serializer.data)

2020-07-27

getmany返回值 gjson_序列化多个模型并在一个JSON响应中发送所有Django Rest框架相关推荐

  1. json里面返回模板输出的html,在JSON响应中返回完整页面的HTML而不是字符串输出...

    我想通过使用web方法的ajax实现最简单的任务.我的web方法如下在JSON响应中返回完整页面的HTML而不是字符串输出 [WebMethod] public static string GetDa ...

  2. 无返回值_只需一步,在Spring Boot中统一Restful API返回值格式与处理异常

    统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生. 比较通用的返回值格式如下: public cl ...

  3. 数据库sql创建标量值函数_使用JSON_VALUE()从JSON数据中提取标量值

    数据库sql创建标量值函数 In this article, we will explore JSON_VALUE() function in SQL Server to extract scalar ...

  4. hutol json null值没了_详解Java去除json数据中的null空值问题

    1.描述 @JsonInclude(JsonInclude.Include.NON_NULL)标记是jackson包提供的json序列化方法,已经集成于Springboot2.0中,此方法的配置意在可 ...

  5. java中数组的返回值是什么类型_面试必问:Java中String类型为什么设计成不可变的?...

    这几天在各大平台上都看到过这样一些帖子,全都是关于String类型对象不可变的问题,当然现在也是找工作的准备时期,因此花了一部分时间对其进行整理一下. 想要完全了解String,在这里我们需要解决以下 ...

  6. Django的视图函数(二):request对象、视图函数返回值(HTML响应、JsonResponse)、反向解析(视图函数)、HttpResponse子类

    文章目录 一.request对象 1.概念 2.属性 (1)path (2)method (3)GET (4)POST (5)encoding (6)META 二.视图函数的返回值 1.HTML响应 ...

  7. (四)Asp.net web api中的坑-【api的返回值】

    (四)Asp.net web api中的坑-[api的返回值] 原文:(四)Asp.net web api中的坑-[api的返回值] void无返回值 IHttpActionResult HttpRe ...

  8. Thrift解读(五)——server端RPC接收与返回值的回送

    Thrift框架主要分为四层:Service,Protocol,Transport,Server.前述介绍的TNonBlockingServer就是一种Server,除此之外,还有很多别的Server ...

  9. Spring MVC 执行过程原理(请求映射原理、参数处理原理、返回值处理器)

    Spring MVC 执行过程分析 文章目录 Spring MVC 执行过程分析 请求映射原理 适配器Adapter 执行目标方法 参数处理器解析器HandlerMethodArgumentResol ...

最新文章

  1. mysql 创建用户 create user_mysql创建用户并赋予用户权限详细操作教程
  2. android网络通信之HTTP协议教程实例汇总
  3. TOJ5398: 签到大富翁(简单模拟) and TOJ 5395: 大于中值的边界元素(数组的应用)...
  4. Android九点阵手势识别,能量黑科技模块八-九:两路按键颜色手势魔块
  5. C语言开发笔记(八)static
  6. 如何解决区块链钱包更新慢问题?
  7. 如何使电脑不会重复启动同一个进程
  8. 微信用户量破6.5亿 首超移动QQ
  9. 11-Container With Most Water
  10. iphone java模拟器_电脑java模拟器 模拟器游戏
  11. Axure手机原型图总结
  12. Python使用matplotlib绘制龟兔赛跑中兔子和乌龟的行走轨迹
  13. 万用表测电容方法-电子技术方案
  14. 域名显示服务器错误,域名解析出现错误是怎么回事?
  15. 搭建帮助中心无方法,Baklib帮你轻松解决
  16. 财务共享建设后,为什么比别人效率低,因为忽略了这个关键点
  17. 韦东山 IMX6ULL和正点原子_正点原子Linux第五十七章Linux MISC驱动实验
  18. Java的字节流和字符流
  19. SQL查询语句教程(浅显易懂)
  20. “百度杯”CTF比赛 九月场Upload 之菜刀的使用

热门文章

  1. 【kafka】Group coordinator xx is unavailable or invalid, will attempt rediscovery
  2. 75-100-020-测试-MySQL 单表优化案例
  3. 【nginx】nginx 常用命令
  4. 【Elasticsearch】Elasticsearch 相关度评分 TFIDF
  5. 【Java】Synchronized解析以及多种用法
  6. 【Mac】mac 安装 prometheus 报错 prometheus: prometheus: cannot execute binary file
  7. 【Flink】Flink时间是如何设计的
  8. hive-05-Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask
  9. docker-compose基础
  10. 常用函数式接口-Function