我想在HTML表單中顯示一個JSON文檔,分解成單獨的輸入項,允許修改,然後將其轉換回JSON文檔。Django:json.dumps打破JSON數組
首先,我使用data = json.load(json_data)
將文檔轉換爲對象,然後將data
傳遞給模板,在模板中訪問其屬性,如下所示:<input type="hidden" name="countries" value="{{ data.countries }}">
。
一旦回到視圖,我使用doc = json.dumps(request.POST)
將其序列化回JSON。這適用於任何條形陣列:"countries": "[u'US']"
,它應該看起來像:"countries": ['US']
我可以使用字符串操作來清理它,但是有沒有更好的方法?
view.py(剝出DB代碼)
def addProducts(request):
if request.POST:
doc = json.dumps(request.POST)
return HttpResponseRedirect('/add_product')
json_data = open('items.json')
data = json.load(json_data)
return render("add_products.html", {
"products": data,
}, context_instance=RequestContext(request))
doc
最終被一字符串:在items.json
{"doc_type": "Product", "countries": "[u'US']"}
原始數據:
{"doc_type": "Product", "countries": ["US"]}
如何提交POST? –
在模板中?通過一個形式'' – KingFu
這看起來像是不應該發生的事情,因爲QueryDict以與正常字典相同的方式被序列化。從這個字符串('u'前綴)的形式來看,它看起來像沿着像'str(arr)'而不是'arr''設置'request.POST [「countries」]'這樣的行來做一些奇怪的事情。 。請發佈完整的代碼。 – freakish