【问题标题】:How to validate number in django如何在 django 中验证号码
【发布时间】:2013-05-10 09:18:22
【问题描述】:
我正在学习 Django,查看了 django 验证,但我想要以下类型。在 google 中搜索没有结果。
在我的应用程序中,它们是两个字符字段,我希望对其进行验证,以便条件是,
1.输入任何一个字段。
2.验证输入的数据是否为整数。
这意味着,这两个字段都不是强制性的,但是任何一个都是强制性的,并且该强制性字段应该只接受数字。
如何在 django 中做到这一点。
【问题讨论】:
标签:
django
django-models
django-templates
django-admin
【解决方案1】:
class MyForm(forms.Form):
field_one = forms.IntegerField(required=False)
field_two = forms.IntegerField(required=False)
def clean(self):
cleaned_data = self.cleaned_data
field_one = cleaned_data.get('field_one')
field_two = cleaned_data.get('field_two')
if not any([field_one, field_two]):
raise forms.ValidationError(u'Please enter a value')
return cleaned_data
- 使用 IntegerField 将验证只有数字字符
现在,涵盖您的空白空间用例。
- 在两个字段中指定
required=False 允许将任一字段留空。
- 在表单上实现
clean() 可以让您访问这两个字段。
-
.get() 将返回 None 如果没有找到密钥,所以使用
any([field_one, field_two]) 将返回 true 如果至少其中之一
列表中的值不是None。如果没有找到任何值,则
ValidationError 将被提升。
希望对你有所帮助。