Проверка ввода флажка в Django

#django #validation #checkbox

#django #проверка #флажок

Вопрос:

Я хочу добавить флажок в мое поле регистрации для терминов и использования. Как я могу написать чистый метод для проверки этого.

Я написал чистый метод, в котором я хочу быть уверенным, что я правильно улавливаю значение флажка:

  def clean_terms(self):
         if self.cleaned_data["terms"] == u'on':
             raise forms.ValidationError(
                 "You have to accept termsamp;conditions to complete registration"
             )
  

В результате, когда я заполняю свою регистрационную форму и отправляю ее, она выдает мне эту ошибку проверки :

Правила и условия: выберите правильный выбор. вкл. не является одним из доступных вариантов.

Итак, как я могу понять, что флажок установлен, и как правильно реализовать флажок «Термин и использование»?

Мое поле флажка :

  terms = forms.ChoiceField(
     label="Termsamp;Conditions",
     widget=forms.CheckboxInput()
 )
  

Комментарии:

1. Может быть, вам следует показать нам, как вы определяете флажок в первую очередь?

Ответ №1:

Не используйте a ChoiceField для одного флажка. Используйте BooleanField .

 terms = forms.BooleanField(
    error_messages={'required': 'You must accept the terms and conditions'},
    label="Termsamp;Conditions"
)
  

Вам даже не нужен clean_ метод.