私はこれを理解したと思っていましたが、奇妙なものを発見しました。 URLが認識されない場合、私はDjango、認識できないURL(404テンプレートだけではない)のリダイレクト
url('^page_1/$', handle_page_1),
url('^page_2/$', handle_page_2),
url('^.*/$', handle_page_not_found),
handle_page_not_found()
を持っているURLで
は適切にユーザーをリダイレクトします。
これはうまくいきますが、私は奇妙なことを発見しました。
関数が返され
return HttpResponse("ok")
し、「OK」を返し、すべてが正常に動作すると思われる場合。しかし、私はちょうどhandle_page_not_found()
が呼び出されているのを見ました(私はprintステートメントでテストしました)。返されるのはまだ「OK」ですが、最初にhandle_page_not_found()
のコードを実行しています。
したがって、認識されないURLに対して呼び出されるが、HttpResponse
オブジェクトによって呼び出されない関数を持つにはどうすればよいですか?
編集:答えに基づいて、特別なテスト状況を除いて、実際に私のコードが正常であることがわかりました。 HttpResponseがajax呼び出し(通常は私が使用しているとき)に返される限り、すべて役に立ちます。
あなたはそうです! request.pathは/favicon.ico/です。これは、私が見て、私がHttpResponseをajax呼び出しに返すときに問題がないことを確認しました。それは実際には私が今見ているテストページを除いてこれを行う唯一の時間です。 – user984003
ショートバージョン:すべて正常です。私のコードは特殊なテスト状況を除いて動作します。私のために – user984003
私はそれが最後のURLの表現のためだと思う。任意の文字列に対してhandle_page_not_foundを呼び出し、星を別のものに変更します。 – drabo2005