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()
)
I want to add a checkbox to my registration field for terms&use. How can I write a clean method to validate this.
I have written a clean method where I want to be sure that I'm catching checkbox value correctly:
def clean_terms(self):
if self.cleaned_data["terms"] == u'on':
raise forms.ValidationError(
"You have to accept terms&conditions to complete registration"
)
As a result when I fill my registration form and post it, it gives me this validation error :
Terms & Conditions: Select a valid choice. on is not one of the available choices.
So how can I understand that a checkbox is checked and how to correctly implement a term&use checkbox ?
My checkbox field :
terms = forms.ChoiceField(
label="Terms&Conditions",
widget=forms.CheckboxInput()
)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不要将
ChoiceField
用于单个复选框。使用BooleanField
。您甚至不需要
clean_
方法。Don't use a
ChoiceField
for a single checkbox. Use aBooleanField
.You don't even need a
clean_
method.