Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-在queryset对象内以动态方式赋值_Python_Django - Fatal编程技术网

Python Django-在queryset对象内以动态方式赋值

Python Django-在queryset对象内以动态方式赋值,python,django,Python,Django,我的函数从DB读取数据并返回序列化的JSON数据,我需要在queryset中添加一个dinamic字段 实际上,我在queryset中添加字段时遇到了问题,代码如下: 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_assign

我的函数从DB读取数据并返回序列化的JSON数据,我需要在queryset中添加一个dinamic字段

实际上,我在queryset中添加字段时遇到了问题,代码如下:

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对象作为字段不存在

我错过什么了吗

谢谢大家!


:)

我猜django
序列化程序只转换属于django模型对象的字段,但它不会获取任何不属于它的附加信息。因此,您可能需要使用
json.dumps
方法手动执行此操作。

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(例如,对其他模型的引用),您可能会遇到错误