【问题标题】:How to render/retrieve "field[]" in django forms?如何在 django 表单中呈现/检索“field []”?
【发布时间】:2018-03-31 14:53:46
【问题描述】:

我正在尝试在 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 中考虑,但它似乎不是我需要的

【问题讨论】:

    标签: django html django-forms


    【解决方案1】:

    要使用name="image_url[]" 获取所有输入,请使用getlist()

    request.POST.getlist("image_url[]")
    

    请注意,您只需要方括号,因为它们在 html 输入中。 Django 没有做任何不同的事情,因为它们包含在名称中 - 您可以将 html 更改为 name="image_url" 并将视图更改为 request.POST.getlist('image_url') ,它仍然可以工作。

    如果你想使用 Django 表单,那么你可能必须写一个custom field

    【讨论】:

    • 是的,我认为方括号是 php 约定
    猜你喜欢
    • 2018-08-31
    • 2017-05-26
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 2014-11-07
    相关资源
    最近更新 更多