我的函数从DB读取数据并返回序列化的JSON数据,我需要在查询集中添加一个dinamic字段。
实际上,我在查询集中添加字段时遇到问题,代码为:
def get_sim_list():
t_sim = RD_sim_list.objects.all()
for sim in t_sim :
sim.sim_assigned = 1
return serializers.serialize('json',t_sim)
当我得到结果值“sim_assigned”在t_sim对象上不存在为字段。
我错过了什么吗?
谢谢!
:)
答案 0 :(得分:0)
我猜django serializers
只翻译属于django模型对象的字段,但它不会获取任何不属于它的附加信息。因此,您可能需要使用json.dumps
方法手动执行此操作。
答案 1 :(得分:-1)
Django提供的默认序列化程序可能会对模型进行内省,并确定需要序列化的字段。如果要添加自定义属性,则序列化程序可能无法识别它。
我看到两个选项:
.values()
方法,并在其上使用json.dumps()
。选项2的示例:
import json
t_sim = RD_sim_list.objects.values()
for sim in t_sim :
sim['sim_assigned'] = 1
return json.dumps(t_sim)
请注意,如果模型包含的值不是JSON可转换的字段(例如,对其他模型的引用),则可能会遇到错误。