2011-06-10 10 views
2

clean()でエラーを処理する通常の方法は、forms.ValidationErrorを適切なメッセージで呼び出すことです。フォームはそのメッセージで再表示され、ユーザーは再試行できます。Djangoフォームのclean()メソッドの中で致命的なエラーを処理するには?

しかし、データベースリンクがダウンしたり、重要なシステムファイルが失われたりするなど、ユーザーが回復できないclean()でエラーが検出された場合はどうなりますか?その場合、ユーザーが何もできないのでフォームを再表示したくない。フォームを再度送信すると、同じエラーが発生する可能性が非常に高いです。

この種の状況を処理するには、エラーページにリダイレクトする方がよいでしょう。クリーン()内でそれを行うことはできますか?

答えて

1

いいえ、それはロジックが所属している場所ではないためです。ロジックはおそらく自分のビューに属している可能性があります。

実際には、このようなことはおそらくあなたのコードがerror 500を放射する原因になります。これはあなたが望むものです。あなたのエラー500のページが参考になるようにしてください(Think Vitaminに興味深い考えがあります)。

関連する問題