如何在django表单中渲染/检索“field []”?

时间:2017-10-19 14:17:15

标签: django html5 django-forms

我正在尝试在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中思考但似乎并不是我需要的东西

1 个答案:

答案 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