我想在我的注册字段中添加一个复选框,用于术语和使用。如何编写一个干净的方法来验证这一点。
我写了一个干净的方法,我想确保我正确捕捉复选框值:
def clean_terms(self):
if self.cleaned_data["terms"] == u'on':
raise forms.ValidationError(
"You have to accept terms&conditions to complete registration"
)
因此,当我填写我的注册表并发布时,它会给我这个验证错误:
条款&条件:选择有效的选择。 on不是可用的选择之一。
那么我怎么能理解选中一个复选框以及如何正确实现一个术语和使用复选框?
我的复选框字段:
terms = forms.ChoiceField(
label="Terms&Conditions",
widget=forms.CheckboxInput()
)
答案 0 :(得分:21)
不要将ChoiceField
用于单个复选框。使用BooleanField
。
terms = forms.BooleanField(
error_messages={'required': 'You must accept the terms and conditions'},
label="Terms&Conditions"
)
您甚至不需要clean_
方法。