私はDjangoを学んでいますが、Djangoの検証を調べましたが、以下のタイプが欲しい.Googleで検索しても結果はありません.
私のアプリでは、それらは2つの文字フィールドであり、条件が次のようになるように検証したい
1.いずれかのフィールドに入力します。
2.入力されたデータが整数であることを検証する必要があります。
つまり、両方のフィールドは必須ではありませんが、いずれかが必須であり、その必須フィールドは数字のみを受け入れる必要があります。
ジャンゴでそれを行う方法。
私はDjangoを学んでいますが、Djangoの検証を調べましたが、以下のタイプが欲しい.Googleで検索しても結果はありません.
私のアプリでは、それらは2つの文字フィールドであり、条件が次のようになるように検証したい
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
required=False
すると、どちらかのフィールドを空白のままにすることができます。clean()
フォームに実装すると、両方のフィールドにアクセスできます。.get()
None
キーが見つからない場合は
が返されるためany([field_one, field_two])
、リスト内の値の少なくとも 1 つが ではない場合、 を使用すると true が返されますNone
。どちらの値も見つからない場合、
ValidationError
が発生します。それがあなたを助けることを願っています。