1

我正在学习 Django,查看了 django 验证,但我想要以下类型。在 google 中搜索没有结果。

在我的应用程序中,它们是两个字符字段,我希望对其进行验证,以便条件是,

1.输入任何一个字段。

2.它应该验证输入的数据是整数。

这意味着,这两个字段都不是强制性的,但是任何一个都是强制性的,并且该强制性字段应该只接受数字。

如何在django中做到这一点。

4

1 回答 1

2
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则将提高。

希望对您有所帮助。

于 2013-05-15T19:04:49.323 回答