2016-05-22 79 views
1

我無法在我的應用程序中設置自定義404頁面。我知道有很多這樣的答案,我已經閱讀了一些,但他們沒有幫助。具體來說,我試圖設置ALLOWED_HOSTS['*'],添加TEMPLATE_DEBUG = False並將--insecure添加到runserver。這兩個都沒有幫助。無法設置自定義404頁面(Django 1.9)

下面是我遵循的步驟:

創建ankblog/not_found.html的頁面。

將此添加到我的views.py

def not_found(request): 
    return render(request, 'ankblog/not_found.html') 

將此添加到我的urls.py

from ankblog import views as ank_view 
handler404 = 'ank_view.not_found' 

settings.py

DEBUG = False 
ALLOWED_HOSTS = ['*'] # also tried 'localhost' 

我得到一個500服務器錯誤,而不是預期的頁面。另外,如果我將ALLOWED_HOSTS更改爲['localhost'],則會出現400錯誤(在訪問任何頁面時,所以我認爲這是一般錯誤)。

我很確定這是一件小事,我在某處失蹤,但不知道是什麼。請幫忙!

+0

如果您再次打開調試模式,並嘗試訪問不存在的網址,您是否仍然收到500錯誤?或者你會得到通常的404 Django調試模板? – Railslide

+0

@Railslide是的,然後我得到Django的開發404模板。 – dotslash

+1

您的項目的頂層是ank_view.py嗎?也許它需要'ankblog.ank_view.not_found'遵循模式'app.file.method' – dotcomly

回答

2

導入甚至沒有必要,因爲handler404只是一個變量/設置存儲爲一個字符串,所以你可以刪除它。您只需提供格式爲app.file.method的完整包含路徑,您的情況爲ankblog.views.not_found

+0

謝謝!繼續展示如何嘗試過於聰明可以讓你搞砸! :d – dotslash