我以爲我有這個想法,但只是發現了一些奇怪的東西。Django,重定向用戶無法識別的url(不僅僅是404模板)
在URL中我有
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")
然後「確定」返回,一切似乎很好地工作。但是,我剛剛看到handle_page_not_found()
也被稱爲(我用打印語句測試過)。返回的結果仍然「OK」,但它首先執行handle_page_not_found()
中的代碼。
那麼,我怎樣纔能有一個功能,被稱爲無法識別的網址,但這不是由HttpResponse
對象調用?
編輯:根據回答,看到我的代碼實際上很好,除了在特殊的測試情況。只要將HttpResponse返回給ajax調用(這是我通常使用它的時候)就可以了。
你說得對! request.path是/favicon.ico/這讓我看到,當我將HttpResponse返回給ajax調用時,我沒有問題。這實際上是我唯一一次這樣做,除了我現在看到的測試頁面。 – user984003
簡版:一切都很好。我的代碼在特殊測試情況下工作。 – user984003
對我來說,我相信這是由於在最後一個網址中的表達。對於任何字符串,它會調用handle_page_not_found,將明星更改爲其他內容。 – drabo2005