私は自分のミドルウェアクラスをDjangoで作成しました。これは最近までうまく動作していました。奇妙なことに、process_requestはまだうまく呼び出されていますが、応答が500であっても(内部のサーバーエラー)、process_exceptionはまったく呼び出されません。どうして?Djangoミドルウェアクラスの場合、process_requestはどのようにうまくいくのですか?process_exceptionは呼び出しではありません。
設定ファイル内にインストールされているミドルウェアのリストの最初または最後の項目としてミドルウェアクラスを宣言するかどうかは違いありません。
おかげで、 デイブ
process_exception自体で例外が発生する可能性がありますか? – Boldewyn
'process_exception'メソッドの先頭に' import pdb; pdb.set_trace() 'を置き、runserverを起動して500エラーを発生させます。 runserverがpdbセッションに入ると、あなたのメソッドは確実に呼び出されます。次に、何が起こるか見るためにステップスルーします。 –
私は同じ問題を抱えています。私は例外の電子メールに詳細を追加したい。私はhttp://stackoverflow.com/questions/6678895/django-error-reporting-how-to-know-which-user-triggered-the-errorから解決策を見つけました。私は実装してprocess_exception()が実行されていないようです。 process_request()メソッドを追加し、request.META ['MYVAR'] = "funky"を追加しました。これは電子メールに含まれていますが、process_exception()を呼び出せないようです。また、MIDDLEWARE_CLASSES設定で異なる場所(最初と最後)を試しました。 – Furbeenator