django - Django 序列化程序获取相关字段
问题描述
我有一个查询集,我想将其转换为 json 并发送给客户端。它只需要定义的一些字段。但是,“发件人”显示为 aid
因为它是 a foreignKey
。
需要什么来返回发件人username
?(sender.username
没用)。(不使用drf)
messages = Message.objects.all()
messages_json = serializers.serialize("json", messages, fields=('id','sender', 'text', 'timestamp'))
解决方案
未经测试,但使用QuerySet.values
和__
关系行走可以让您一键获取数据:
import json
messages = Message.objects.all()
payload_data = messages.values('id', 'sender__username', 'text', 'timestamp')
# tidy up the dict key names, assuming the client needs that doing
for x in payload_data:
x['sender'] = x['sender__username']
del x['sender__username']
messages_json = json.dumps(payload_data)
推荐阅读
- vue.js - 我有一个电子项目,我想使用 vueJS
- javascript - 在 svg 路径上绘制箭头而不使用 textPath
- javascript - 通过秘银 js 中的 es6 类在两个文件之间共享数据或共享 es6 类的实例
- android - 使用计时器更改毕加索加载图像的网址
- asp.net-core - 使用新表更新 DbContext 文件 - asp.net core DB first approch
- php - GLPI DEPLOY:不应允许对文件目录进行 Web 访问
- swift - 我想在 trailingSwipeActionsConfigurationForRowAt 中并排添加图像和文本,并在表格视图中快速滑动时引导滑动动作
- c# - 安装适当的引用时,如何解决“Google”类型中不存在类型名称“Apis”?
- c++ - 使用非成员函数是一个好习惯吗?
- node-red - 在 Node-RED 中停止流时引发错误