我遇到的問題是將使用django.core.serializers的序列化Django模型與其他一些數據混合,然後嘗試使用json.dumps序列化整個事物。如何將JSON序列化的Django模型與平JSON混合
示例代碼:
scores = []
for indicator in indicators:
score_data = {}
score_data["indicator"] = serializers.serialize("json", [indicator,])
score_data["score"] = evaluation.indicator_percent_score(indicator.id)
score_data["score_descriptor"] = \
serializers.serialize("json",
[form.getDescriptorByPercent(score_data["score"]),],
fields=("order", "value", "title"))
scores.append(score_data)
scores = json.dumps(scores)
return HttpResponse(scores)
它返回這樣的對象列表:
{
indicator: "{"pk": 345345, "model": "forms.indicator", "fields": {"order": 1, "description": "Blah description.", "elements": [10933, 4535], "title": "Blah Title"}}",
score: 37.5,
score_descriptor: "{"pk": 66666, "model": "forms.descriptor", "fields": {"order": 1, "value": "1.00", "title": "Unsatisfactory"}}"
}
我有問題可以在JSON中可以看出與序列化Django模型被包裹在多套報價。這使得它很難與客戶端上的工作,當我嘗試做一些像
indicator.fields.order
,因爲瀏覽器認爲我處理一些類型的字符串它的計算結果不了了之。
理想情況下,我希望有效的JSON沒有使其不可讀的衝突引號。一些類似於這樣的對象的列表:
{
indicator: {
pk: 12931231,
fields: {
order: 1,
title: "Blah Title",
}
},
etc.
}
我應該以不同的順序使用不同的數據結構,這樣,不同的串行器?