Django动态表单认为它已被发布

时间:2012-09-19 13:21:10

标签: django django-forms

我已经在这个问题上摸不着头几个小时所以现在轮到你了:))

我创建了一个在__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(),如果是,为什么?

1 个答案:

答案 0 :(得分:2)

您的__init__方法应为:

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

我不确定这是你的问题,还是你问题上的拼写错误。您的示例代码表示该表单将使用data=args初始化。