Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么这个django表格无效?_Python_Django_Forms - Fatal编程技术网

Python 为什么这个django表格无效?

Python 为什么这个django表格无效?,python,django,forms,Python,Django,Forms,为什么此表单不能验证?它甚至没有调用clean()方法 forms.py: class SingleSampleForm(forms.Form): sample_id = forms.CharField(label='Sample ID:') class Meta: fields = ('sample_id',) def __init__(self, *args, **kwargs): super(SingleSampleForm,

为什么此表单不能验证?它甚至没有调用
clean()
方法

forms.py:

class SingleSampleForm(forms.Form):

    sample_id = forms.CharField(label='Sample ID:')

    class Meta:
        fields = ('sample_id',)

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

        self.helper = FormHelper()
        self.helper.layout = Layout(
            Field('sample_id',
            css_class="search-form-label",),
            Submit('submit', 'Search sample', css_class='upload-btn')
        )

        self.helper.form_method = 'POST'


    def clean(self):
        print('CLEAN')
        sample_id = self.cleaned_data['sample_id']
        if sample_id:
            return sample_id
        raise ValidationError('This field is required')
views.py:

class SampleView(View):

    sample_form = SingleSampleForm

    def get(self, request, *args, **kwargs):

        sample_form = self.sample_form()

        self.context = {'sample_form': sample_form,}

        return render(request,
                    'results/single_sample_search.html',
                    self.context)


    def post(self, request, *args, **kwargs):

        self.sample_form = self.sample_form(request.POST)

        if self.sample_form.is_valid():
            print('Valid')
        else:
            print('not valid')

        self.context = {
                'sample_form': self.sample_form,
            }


        return render(request,
                'results/single_sample_search.html',
                self.context)

我不明白为什么它甚至不调用
clean()
方法。我有另一个几乎相同的表单,它验证了。当我通过
请求后执行
print dir(self.sample\u form)
时,POST
dict声明
验证=未知
。为什么会这样?如何检查未验证的原因?

调用
super()
时,需要传递
*args
**kwargs


目前,不使用任何
*args
**kwargs
调用
\uuuu init\uuuu
相当于使用
数据=无
调用。表单未绑定,因此将永远无效。

您是否正在执行
POST
?非常感谢您的好意!我已经看了几个小时了,却完全忽略了这一点……有时候你只需要多一双眼睛:)
def __init__(self, *args, **kwargs):
    super(SingleSampleForm, self).__init__(*args, **kwargs)