1

私はDjangoを学んでいますが、Djangoの検証を調べましたが、以下のタイプが欲しい.Googleで検索しても結果はありません.

私のアプリでは、それらは2つの文字フィールドであり、条件が次のようになるように検証したい

1.いずれかのフィールドに入力します。

2.入力されたデータが整数であることを検証する必要があります。

つまり、両方のフィールドは必須ではありませんが、いずれかが必須であり、その必須フィールドは数字のみを受け入れる必要があります。

ジャンゴでそれを行う方法。

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])、リスト内の値の少なくとも 1 つが ではない場合、 を使用すると true が返されますNone。どちらの値も見つからない場合、 ValidationErrorが発生します。

それがあなたを助けることを願っています。

于 2013-05-15T19:04:49.323 に答える