我的Django项目中有两个类型为queryset的对象的JSON序列化问题。例如,我有:
collectionA = A.objects.all()
collectionB = B.objects.all()
当我尝试仅序列化一个集合时:
json = serializers.serialize('json', collectionA)
然后一切正常,但我如何将这两个集合序列化为一个json对象?
答案 0 :(得分:7)
from itertools import chain
combined = list(chain(collectionA, collectionB))
json = serializers.serialize('json', combined)
答案 1 :(得分:2)
您无法组合两个查询集来序列化它们。如果序列化一个查询集,则实际执行该查询集并在此时填充查询集数据。如果您只想要集合中的数据,只需获取集合,加入它们,然后序列化已连接的集合。形式的东西:
collectionA = list(A.objects.all())
collectionB = list(B.objects.all())
joined_collection = collectionA + collectionB
json = serializers.serialize('json', joined_collection)
尝试一下,这应该可行。