Проверка ввода 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_.