django - 动态表格字段集

Cod*_*ngo 5 django django-templates django-models django-forms

表格将吐出未知数量的问题以供回答.每个问题都包含一个提示,一个值字段和一个单位字段.表单是在运行时在formclass的init方法中构建的.

编辑:每个问题都会收到一个用作标签的唯一提示,以及select元素的唯一单元列表.

这似乎是一个适用于可迭代表单字段集的案例,可以轻松设置样式.但由于字段集 - 例如django-form-utils的字段集被定义为元组,它们是不可变的......我找不到在运行时定义它们的方法.这是可能的,还是另一种解决方案?

编辑:

具有initial_data的formset不是答案 - initial_data仅允许为formset中的表单字段设置默认值.无法通过initial_data将项目列表发送到choicefield构造函数.

......除非我错了.

ist*_*ble 2

查看表单集。您应该能够将 N 个问题中每一个问题的数据作为初始数据传递。沿着这些思路:

question_data = []
for question in your_question_list:
    question_data.append({'prompt': question.prompt, 
                          'value': question.value, 
                          'units': question.units})
QuestionFormSet = formset_factory(QuestionForm, extra=2)
formset = QuestionFormSet(initial=question_data)
Run Code Online (Sandbox Code Playgroud)