3

Djangoプロジェクトのクエリセットタイプの2つのオブジェクトのJSONシリアル化に問題があります。たとえば、私は持っています:

collectionA = A.objects.all()
collectionB = B.objects.all()

1つのコレクションのみをシリアル化しようとすると:

json = serializers.serialize('json', collectionA)

その後、すべてが正しく機能しますが、これら2つのコレクションを1つのjsonオブジェクトにシリアル化するにはどうすればよいですか?

4

2 に答える 2

7
from itertools import chain
combined = list(chain(collectionA, collectionB))

json = serializers.serialize('json', combined)
于 2012-09-20T10:23:28.457 に答える
3

2つのクエリセットを組み合わせてシリアル化することはできません。1つのクエリセットをシリアル化すると、実際に実行され、その時点でクエリセットデータが入力されます。コレクション内のデータのみが必要な場合は、セットを取得して結合し、結合されたコレクションをシリアル化します。フォームの何か:

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)

それを試してみてください、これはうまくいくはずです。

于 2012-09-20T10:23:35.367 に答える