我正在使用Django序列化程序將模型數據序列化爲JSON。
例如: - 我有一個模型(CHECKTYPE),其中包含一個字段「類型」。
現在'類型'包含逗號(,)分隔的項目,如'test,test1,test2'。Django序列化程序 - 添加/更新字段屬性值
我使用Django串行像的下方(view.py某處):
gettypes = CHECKTYPE.objects.all()
mytypes = serializers.serialize("json", gettypes)
return HttpResponse(mytypes, content_type="application/json")
這將返回我JSON網頁上象下面這樣:
[{"model": "porttype.CHECKTYPE", "pk": "xyz00000005", "fields": {"types": "test, test1, test2"}}]
現在在這裏我要在序列化數據之前操作字段屬性。
例如:如果我用逗號分隔「類型」,我想在字段'lasttype'中添加一個屬性,這將成爲列表的最後一個索引。
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'屬性。 請讓我知道是否有任何可能實現這一目標。
感謝,
沙善
謝謝。這解決了我的問題(我需要在JsonResponse中添加safe = False來顯示列表)。 –
如果您想要,您可以將答案標記爲已接受:) – v1k45