在我的意見我有代碼:Django的渲染模板`500.html`,而不是`404.html`
raise Http404
當DEBUG=False
Django的渲染模板500.html
而不是正確404.html
!我無法理解爲什麼!
編輯:當DEBUG=True
我得到了一個標準(由Django的)
Page not Found (404)
You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.
更重要的是,在runserver
控制檯我清楚地看到了404
代碼。 而不是,當在控制檯上設置DEBUG=False
我得到一個500
!這太奇怪了。
編輯2:如果我在提出Http404
之前發出打印聲明,我會在DEBUG=True
而不是False
時看到消息!
編輯3:我可以確認,當DEBUG=False
raise Http404
聲明永遠不會達成。怎麼可能?
更新
與DEBUG=False
其實在每一個網址,我收到了500雖然與DEBUG=True
這種情況不會發生。它怎麼可能?它應該運行相同。我開始認爲這是一個Django錯誤。
一種存在的可能是因爲你的400.html模板生成一個500錯誤,你可以發表你的模板? – maazza
DEBUG = True會發生什麼? –
@maazza:我懷疑它。我創建了一個新的404.html,並在404中寫入了它。但是,它沒有被渲染。 – rubik