1

我已经为这个问题摸索了几个小时,所以现在轮到你了:)

我制作了一个在__init__. 除此之外它做什么/为什么不是很重要,所以这里有一个非常简化的例子,它仍然表现出同样的问题:

class TestForm(forms.Form):
    def __init__(self, variable, *args, **kwargs):
        super(TestForm, self).__init__(args, kwargs)
        for i in range(0, variable):
            self.fields['f_%d' % i] = forms.BooleanField(label="Field %d" % i)

# and in the view:
return render(request, 'survey/form.html', {'f': TestForm(variable=10)})

而模板只是{{f.as_p}}. 该代码有效,但它也包含错误消息。每个 BooleanFields 中有 10 个错误表明它们是必需的。但我没有发布任何内容,当然也没有将任何发布数据传递给 TestForm。您在上面看到的是我正在运行的内容(自己尝试一下)。

那么我做错了什么?表格是否正在运行is_valid(),如果是,为什么?

4

1 回答 1

2

你的__init__方法应该是:

def __init__(self, variable, *args, **kwargs):
    super(TestForm, self).__init__(*args, **kwargs)

我不确定这是您的问题,还是您的问题中的错字。您的示例代码意味着表单将使用data=args.

于 2012-09-19T13:28:47.360 回答