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)