【问题标题】:How to dynamic create django form with the same "name=" attr for each field?如何为每个字段动态创建具有相同“name=”属性的 django 表单?
【发布时间】:2013-07-31 14:55:35
【问题描述】:

我需要创建带有复选框字段的 django 表单。 “checked”属性的字段数和值是动态的。

我创建了表单:

form = DynamicForm()
for field in all_fields:
    if field in checked_field:
        form.fields[field.id]=forms.BooleanField(label=field.name, initial=True)
    else:
        form.fields[field.id]=forms.BooleanField(label=field.name, initial=False)
return form

,但是这个表单对于每个字段(name=field.id)都有不同的“name”属性值。 如何为每个字段设置相同的名称?

【问题讨论】:

  • 看起来您正在尝试做错事 :) 每个复选框具有相同名称属性的最终目的是什么?
  • 我想在一个列表中从这个表单中获取 POST 数据,例如:checked_fields = request.POST.getlist("same_name_attr")

标签: django django-forms django-models


【解决方案1】:

您不能使用多个布尔字段。你只需要一个MultipleChoiceField 就可以了,它会输出为一系列同名的复选框。

【讨论】:

    猜你喜欢
    • 2016-06-02
    • 1970-01-01
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 2014-12-20
    相关资源
    最近更新 更多