python - Django:将列表添加到 QuerySet
问题描述
我是 django 的新手,如果这不可能或不容易做到,我深表歉意。
我有一个采用模型子集的视图
data = Terms.objects.filter(language = language_id)
子集是一种语言。该集合具有许多语言概念。有些语言可能对多个概念使用同一个词,我想在 SVG 图像中为这些概念着色。所以我接下来这样做:
for d in data:
if d.term is None:
d.colour = "#D3D3D3"
else:
d.colour = termColours[d.term]
其中 termColours 是一个字典,键是唯一的术语,值是我想要的十六进制颜色。
我认为这会为我的查询集添加一个新的颜色属性。但是,当我将查询集转换为 json(以便将其传递给 JS)时,颜色对象不存在。
terms_json = serializers.serialize('json', data)
如何向我的查询集添加新的颜色元素?
解决方案
将您的 Queryset 转换为 Dict,然后修改值。
前任:
data = Terms.objects.filter(language = language_id).values()
for d in data:
if d.term is None:
d.colour = "#D3D3D3"
else:
d.colour = termColours[d.term]
推荐阅读
- c - C:所有字符串文字都有静态存储持续时间吗?
- android - 延迟深度链接到 android 上的外部应用程序
- c# - 如果在数据库中插入新记录,如何更新 SharePoint Online 列表?
- php - 未从 XML 获取完整数据
- python - 安装 TensorFlow 的问题
- http - 对特定脚本的所有 http 请求都返回 GET /false HTTP/1.1
- angularjs - 以模态显示后无法在ckeditor中输入任何文本
- linux - 子进程无法从父进程写入的标准输入中获取输入
- python - 使用带有 smtplib 的 python 阅读邮件
- python - matlab 与 python 3.7 中的串行通信之间的区别?通过 python 串行将超过 128 的 int 值发送到 arduino