getmany返回值 gjson_序列化多个模型并在一个JSON响应中发送所有Django Rest框架
小编典典
如果您合理地设计响应格式,则在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框架相关推荐
- json里面返回模板输出的html,在JSON响应中返回完整页面的HTML而不是字符串输出...
我想通过使用web方法的ajax实现最简单的任务.我的web方法如下在JSON响应中返回完整页面的HTML而不是字符串输出 [WebMethod] public static string GetDa ...
- 无返回值_只需一步,在Spring Boot中统一Restful API返回值格式与处理异常
统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生. 比较通用的返回值格式如下: public cl ...
- 数据库sql创建标量值函数_使用JSON_VALUE()从JSON数据中提取标量值
数据库sql创建标量值函数 In this article, we will explore JSON_VALUE() function in SQL Server to extract scalar ...
- hutol json null值没了_详解Java去除json数据中的null空值问题
1.描述 @JsonInclude(JsonInclude.Include.NON_NULL)标记是jackson包提供的json序列化方法,已经集成于Springboot2.0中,此方法的配置意在可 ...
- java中数组的返回值是什么类型_面试必问:Java中String类型为什么设计成不可变的?...
这几天在各大平台上都看到过这样一些帖子,全都是关于String类型对象不可变的问题,当然现在也是找工作的准备时期,因此花了一部分时间对其进行整理一下. 想要完全了解String,在这里我们需要解决以下 ...
- Django的视图函数(二):request对象、视图函数返回值(HTML响应、JsonResponse)、反向解析(视图函数)、HttpResponse子类
文章目录 一.request对象 1.概念 2.属性 (1)path (2)method (3)GET (4)POST (5)encoding (6)META 二.视图函数的返回值 1.HTML响应 ...
- (四)Asp.net web api中的坑-【api的返回值】
(四)Asp.net web api中的坑-[api的返回值] 原文:(四)Asp.net web api中的坑-[api的返回值] void无返回值 IHttpActionResult HttpRe ...
- Thrift解读(五)——server端RPC接收与返回值的回送
Thrift框架主要分为四层:Service,Protocol,Transport,Server.前述介绍的TNonBlockingServer就是一种Server,除此之外,还有很多别的Server ...
- Spring MVC 执行过程原理(请求映射原理、参数处理原理、返回值处理器)
Spring MVC 执行过程分析 文章目录 Spring MVC 执行过程分析 请求映射原理 适配器Adapter 执行目标方法 参数处理器解析器HandlerMethodArgumentResol ...
最新文章
- mysql 创建用户 create user_mysql创建用户并赋予用户权限详细操作教程
- android网络通信之HTTP协议教程实例汇总
- TOJ5398: 签到大富翁(简单模拟) and TOJ 5395: 大于中值的边界元素(数组的应用)...
- Android九点阵手势识别,能量黑科技模块八-九:两路按键颜色手势魔块
- C语言开发笔记(八)static
- 如何解决区块链钱包更新慢问题?
- 如何使电脑不会重复启动同一个进程
- 微信用户量破6.5亿 首超移动QQ
- 11-Container With Most Water
- iphone java模拟器_电脑java模拟器 模拟器游戏
- Axure手机原型图总结
- Python使用matplotlib绘制龟兔赛跑中兔子和乌龟的行走轨迹
- 万用表测电容方法-电子技术方案
- 域名显示服务器错误,域名解析出现错误是怎么回事?
- 搭建帮助中心无方法,Baklib帮你轻松解决
- 财务共享建设后,为什么比别人效率低,因为忽略了这个关键点
- 韦东山 IMX6ULL和正点原子_正点原子Linux第五十七章Linux MISC驱动实验
- Java的字节流和字符流
- SQL查询语句教程(浅显易懂)
- “百度杯”CTF比赛 九月场Upload 之菜刀的使用
热门文章
- 【kafka】Group coordinator xx is unavailable or invalid, will attempt rediscovery
- 75-100-020-测试-MySQL 单表优化案例
- 【nginx】nginx 常用命令
- 【Elasticsearch】Elasticsearch 相关度评分 TFIDF
- 【Java】Synchronized解析以及多种用法
- 【Mac】mac 安装 prometheus 报错 prometheus: prometheus: cannot execute binary file
- 【Flink】Flink时间是如何设计的
- hive-05-Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask
- docker-compose基础
- 常用函数式接口-Function