首页 > 解决方案 > 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)

如何向我的查询集添加新的颜色元素?

标签: pythondjango

解决方案


将您的 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] 

推荐阅读