モデルデータをJSONにシリアル化するためにDjangoシリアライザを使用しています。
例: - 「タイプ」フィールドを1つ含むモデル(CHECKTYPE)があります。
'types'には、 'test、test1、test2'のようなカンマ(、)で区切られた項目が含まれています。Djangoシリアライザ - フィールド属性値の追加/更新
私は、以下の(view.pyでどこか)のようなDjangoのシリアライザを使用しています:
gettypes = CHECKTYPE.objects.all()
mytypes = serializers.serialize("json", gettypes)
return HttpResponse(mytypes, content_type="application/json")
これは以下のようにWebページ上で私にJSONを返す:
[{"model": "porttype.CHECKTYPE", "pk": "xyz00000005", "fields": {"types": "test, test1, test2"}}]
今ここに私がしたいですデータをシリアル化する前にfields属性を操作します。
例:「種類」をコンマで区切った場合、リストの最後のインデックスになるフィールドlasttypeに属性を1つ追加します。
lasttype = types.split(',')[-1]
ので、最終的なJSONレスポンスは次のようになります。
[{"model": "porttype.CHECKTYPE", "pk": "xyz00000005", "fields": {"types": "test, test1, test2", "lasttype":"test2"}}]
私は以下のようにこれを実行しようとしたが、それは働いていない:
gettypes = CHECKTYPE.objects.all()
updated_types = []
for mtype in gettypes:
mtype.lasttype = mtype.types.split(',')[-1]
updated_types.append(mtype)
mytypes = serializers.serialize("json", updated_types)
return HttpResponse(mytypes, content_type="application/json")
しかし、これは動作しません。それは私に同じJSON応答を与え、 'lasttype'属性を表示していません。 これを達成する可能性がある場合は教えてください。
おかげで、
Shashank
感謝。これは私の問題を解決します(JsonResponseでリストを表示するにはsafe = Falseを追加する必要があります)。 –
あなたは、必要に応じて答えを受け入れ可能とマークすることができます:) – v1k45