フォームに、検証エラーが含まれている場合に空白として設定される特定のフィールドが必要です。たとえば、10進数のフィールドが呼び出されprice
、その値が無効なblueである場合、フィールドを黙ってnoneに設定したいと思います。
これはクエリ文字列を介して検索フィルターを作成するために使用されるため、より良い解決策がある場合はお知らせください。
編集2
class SearchForm(forms.Form):
q = forms.CharField()
price = forms.DecimalField(required=False)
フォームが無効にならないように、フォームが無効なフィールド値を処理できるようにしたいと思います。たとえば、私が?q=car&price=100
フォームを持っていればうまくいくでしょう。がある場合は?q=car&price=circle
、フォームにエラー(値は小数ではありません)を通知しますが、フォームを無効にする代わりに、フィールドを空白にします。
これclean_*
は、フィールドタイプ固有ではないエラーを検証するのに役立ちますか?(フィールドタイプ関連のエラーはすでにチェックされ、フォームが無効になっているはずです)。もしそうなら、どうすればこれらのエラーを検出できますか?
私のアプローチはここでは完全に間違っている可能性があります-私は基本的に検索フィルターを作成しようとしています。