【问题标题】:Django, insert two serialized objects models inside of custom jsonDjango,在自定义 json 中插入两个序列化对象模型
【发布时间】:2014-06-27 14:15:53
【问题描述】:

我需要在自定义 json 中插入两个 json 序列化模型

我尝试使用 json.dumps,但 vars (objects1, objects2) 转换为字符串

objects1 = Objects1.objects.all()
objects2 = Objects2.objects.all()

json_objects1 = serializers.serialize("json", objects1)
json_objects2 = serializers.serialize("json", objects2)

data = json.dumps("first_objects": json_objects1, "second_objects":json_objects2)

return HttpResponse(data, content_type="application/json; charset=utf-8")

【问题讨论】:

    标签: json django serialization


    【解决方案1】:

    一种相当直接的方法是在转储之前对load 序列化查询集:

    json_objects1 = serializers.serialize("json", objects1)
    json_objects2 = serializers.serialize("json", objects2)
    
    data = json.dumps({"first_objects": json.loads(json_objects1), 
                       "second_objects": json.loads(json_objects2)})
    

    这肯定有转储+加载+转储操作的开销。

    另一种选择是使用model_to_dict()

    from django.forms import model_to_dict
    
    objects1 = [model_to_dict(item) for item in objects1]
    objects2 = [model_to_dict(item) for item in objects2]
    
    data = json.dumps({"first_objects": objects1, 
                       "second_objects": objects2})
    

    【讨论】:

      猜你喜欢
      • 2014-05-19
      • 2014-10-05
      • 1970-01-01
      • 2014-10-31
      • 2020-07-05
      • 1970-01-01
      • 2021-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多