我正在尝试在django中使用数组字段 使用javascript动态添加字段,例如用户点击按钮并显示新字段
但是我无法弄清楚如何让django将字段渲染为“field []”名称,我也无法在django视图中获取该字段值。
我尝试在视图中手动创建字段
<input type="text" name="image_url[]" id="id_image_url">
<input type="text" name="image_url[]" id="id_image_url2">
但在视图中我只能得到image_url的最后一个值,
>>>request.POST["image_url[]"]
>>u'url2'
>>>form.cleaned_data["image_url"]
>>>u''
我在FormSets中思考但似乎并不是我需要的东西
答案 0 :(得分:2)
要使用name="image_url[]"
获取所有输入,请使用getlist()
。
request.POST.getlist("image_url[]")
请注意,您只需要方括号,因为它们位于html输入中。 Django没有做任何不同的事情,因为它们包含在名称中 - 您可以将html更改为name="image_url"
,将视图更改为request.POST.getlist('image_url')
,它仍可以使用。
如果你想使用Django表格,那么你可能需要写一个custom field。