我的 Django 项目中的两个查询集类型对象的 JSON 序列化存在一些问题。例如我有:
collectionA = A.objects.all()
collectionB = B.objects.all()
当我尝试仅序列化一个集合时:
json = serializers.serialize('json', collectionA)
那么一切正常,但是我怎样才能将这两个集合序列化为一个 json 对象呢?
我的 Django 项目中的两个查询集类型对象的 JSON 序列化存在一些问题。例如我有:
collectionA = A.objects.all()
collectionB = B.objects.all()
当我尝试仅序列化一个集合时:
json = serializers.serialize('json', collectionA)
那么一切正常,但是我怎样才能将这两个集合序列化为一个 json 对象呢?
from itertools import chain
combined = list(chain(collectionA, collectionB))
json = serializers.serialize('json', combined)
您不能组合两个查询集来序列化它们。如果你序列化一个查询集,它实际上会被执行并且查询集数据在那一刻被填写。如果您只想要集合中的数据,只需获取集合,加入它们,然后序列化加入的集合。某种形式的东西:
from django.core import serializers
collectionA = list(A.objects.all())
collectionB = list(B.objects.all())
joined_collection = collectionA + collectionB
json = serializers.serialize('json', joined_collection)
试试看,这应该可以。