私は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が発生します。それがあなたを助けることを願っています。