Проверка ввода CheckBox в Django
Я хочу добавить флажок в поле регистрации для условий и использования. Как написать чистый метод для проверки этого.
Я написал чистый метод, в котором хочу быть уверенным, что я правильно понимаю значение флажка:
def clean_terms(self):
if self.cleaned_data["terms"] == u'on':
raise forms.ValidationError(
"You have to accept terms&conditions to complete registration"
)
В результате, когда я заполняю свою регистрационную форму и публикую ее, она дает мне эту ошибку проверки:
Сроки и условия: выберите правильный выбор. on не является одним из доступных вариантов.
Итак, как я могу понять, что флажок установлен и как правильно реализовать флажок term & use?
Мое поле флажка:
terms = forms.ChoiceField(
label="Terms&Conditions",
widget=forms.CheckboxInput()
)
Ответы
Ответ 1
Не используйте ChoiceField
для одного флажка. Используйте BooleanField
.
terms = forms.BooleanField(
error_messages={'required': 'You must accept the terms and conditions'},
label="Terms&Conditions"
)
Вам даже не нужен метод clean_
.