我尝试过使用https://docs.djangoproject.com/en/dev/topics/http/views/教程,但我仍然获得了标准的404 html页面。我想切换到我的自定义视图
handler404 = 'myview.views.custom_page_not_found' ,
我调试了它(使用eclipse),然后将handler404(old value -'django.config.default.views.page_not_found
)的值更改为我给出的新值('myview.views.custom_page_not_found')。但它仍然显示较旧的404页面。我已将settings.py DEBUG更改为False,然后显示自定义页面。但它有一些缺点(它不会加载静态文件,所有,DEBUG = false
不是正确的方法)所以我不得不重置为True。
我是否必须进行其他修改才能实现此目的?
答案 0 :(得分:2)
我认为您不能毫无困难地在DEBUG = True
模式下更改404页面。
文档中有一个提示(https://docs.djangoproject.com/en/dev/topics/http/views/#the-404-page-not-found-view):
如果DEBUG设置为True(在您的设置模块中),那么将永远不会使用您的404视图,而是显示您的URLconf,并显示一些调试信息。
答案 1 :(得分:0)
尝试将其添加到主urls.py:
的底部if settings.DEBUG:
urlpatterns += patterns('',
(r'^404/$', TemplateResponse, {'template': '404.html'}))
将404.html交换到您使用的相应模板,我相信404.html是默认设置。然后使用debug = True,您可以测试404页面。
如果您想使用Debug = True进行测试,那么您需要在主urls.py的底部进行测试:
#Enable static for runserver with debug false
from django.conf import settings
if settings.DEBUG is False: #if DEBUG is True it will be served automatically
urlpatterns += patterns('',
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),
)
使用DEBUG = False
运行时,请不要忘记收集静态:
python manage.py collectstatic
希望这有帮助,干杯!