有什么方法可以使django forms类实际上包含一个字段数组吗?我有一个数据库,它会向用户提出各种各样的问题,每个问题都知道如何定义它的小部件……等等,我只是不能把它连接到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 forms获取可变数量的表单字段,或者这超出了它所能做的范围?
如果表单相同(包括它们的标签),则可以使用formsets。e、 g
问题:“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu”
问题:“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu”
问题:你
等等,我假设每个表单在这里只包含一个字段(“问题”字段)。这个例子有三种形式。
如果您需要单个表单中的动态字段数,那么可以使用
__init__
来实现您想要的结果(注意:未经测试的代码!)以下内容:你可以创建一个这样的表单:
你会发现这篇文章很有用:http://jacobian.org/writing/dynamic-form-generation/
你当然可以!
注意:确保您的问题在通话之间有序排列。。因为字段列表将在表单提交、接收等时重新填充
如果数据是有序的和静态的,就不会有问题。
此外,您可能还需要查看
FormSet
s,这是一个表单列表,在您的情况下可能更合适。相关问题 更多 >
编程相关推荐