У меня есть Django modelForm, которую я пытаюсь проверить.Поле является «настраиваемым» полем - т.е. это не поле в модели, а комбинация двух полей, которые я хочу проанализировать и проверить, существует ли во время очистки.Однако метод формы is_valid () не работает, он говорит, что valid = unknown, когда я печатаю форму.
Я использую хрустящие формы Django
Forms.py
class SingleSampleForm(forms.ModelForm):
sample_id = forms.CharField(
required=True,
label='Sample ID:')
class Meta:
model = Sample
fields = ('sample_id',)
def __init__(self, *args, **kwargs):
super(SingleSampleForm, self).__init__()
self.helper = FormHelper()
self.helper.layout = Layout(
Field('sample_id',
# autocomplete='off',
css_class="search-form-label",
),
Submit('submit', 'Search sample', css_class='upload-btn')
)
self.helper.form_method = 'POST'
def clean_sample_id(self):
self.sample_id = self.cleaned_data['sample_id']
print('CLEAN SAMPLE')
try:
... parse self.sample_id and check if exists ...
except Exception as e:
return('Sample does not exist')
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):
sample_form = self.sample_form(request.POST)
if sample_form.is_valid():
print('VALID')
... HttpRedirect()...
else:
print('NOT VALID')
... raise error ...
self.context = {
'sample_form': sample_form,
}
return render(request,
'results/single_sample_search.html',
self.context)
каждый раз, когда я отправляю форму charfield и пытаюсь ее проверить, она печатает «NOT VALID», и если я распечатываю форму, она говорит valid = unknown.Это (почти) точно такая же форма, как и у другой формы, которая позволяет мне очистить поля и проверить их, даже если они не являются полями модели.Почему форма не проверяется?
Спасибо