有什么办法可以使django表单类实际包含一个字段数组?我有一个数据库,它将提取可变数量的问题来询问用户,每个问题都知道如何定义它的小部件...等等,我似乎无法将其连接到Django表单。我尝试了这个:class MyForm(forms.Form): question = [] questions = Question.objects.all() for q in questions: question.append(forms.CharField(max_length=100, label=q.questionText))但这在我创建的新实例时似乎没有暴露我的问题列表MyForm。有什么方法可以使用django表单获取可变数量的表单字段,或者这超出了它的功能范围?
2 回答

慕桂英546537
TA贡献1848条经验 获得超10个赞
当然可以!
class MyForm(forms.Form):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
for i, q in enumerate(Question.objects.all()):
self.fields['%s_field' % i] = forms.CharField(max_length=100, label=q.questionText)
注意:请确保您的问题在两次呼叫之间是顺序排列的。因为表单提交,回执等都会重新填充字段列表。
如果数据是有序的并且是静态的,那将不是问题。
另外,您可能希望查看FormSets,这是一种可能更适合您的情况的表单列表。
添加回答
举报
0/150
提交
取消