これらの各ケースでカスタム マルチウィジェットの入力を検証するための正しい方法は何ですか?
- カスタムフィールドを実装したい場合は?
- 既存のデータベース フィールド タイプ (DateField など) を使用する場合は?
この動機は、次の 2 つの質問に由来します。
私は自分がだまされたと感じているという事実に特に興味があります。私は次value_from_datadict()
のように使用しました:
def value_from_datadict(self, data, files, name):
datelist = [widget.value_from_datadict(data, files, name + '_%s' % i) for i, widget in enumerate(self.widgets)]
try:
D = date(day=int(datelist[0]), month=int(datelist[1]), year=int(datelist[2]))
return str(D)
except ValueError:
return None
辞書を調べてPOST
、ウィジェットの値を構築します(リンクされた質問を参照)。ただし、同時に、いくつかの検証に取り組みました。つまり、日付オブジェクトとしての作成が失敗した場合、チェックで失敗するものをD
返します。None
is_valid()
したがって、私の3番目の質問は、これを別の方法で行うべきですか? この場合、カスタム フィールドは必要ありません。
ありがとう。