我的问题很简单,当使用 Django 时,如何显示 HTTP 状态 405(方法不允许)的自定义错误页面@require_POST
装饰师?
我正在使用django.views.decorators.http.require_POST
装饰器,当通过 GET 请求访问页面时,控制台显示 405 错误,但页面只是空白(甚至没有 Django 错误页面)。如何让 Django 显示此类错误的自定义和/或默认错误页面?
编辑:
值得一提的是,我尝试将 404.html、500.html 和 405.html 页面放入我的模板文件夹中 - 但这也没有帮助。我也有所不同DEBUG = True
and False
,无济于事。
您必须编写自定义 Django 中间件。您可以从这个开始并扩展它以检查 405.html 文件是否存在等等:
from django.http import HttpResponseNotAllowed
from django.template import RequestContext
from django.template import loader
class HttpResponseNotAllowedMiddleware(object):
def process_response(self, request, response):
if isinstance(response, HttpResponseNotAllowed):
context = RequestContext(request)
response.content = loader.render_to_string("405.html", context_instance=context)
return response
如果您不知道如何安装中间件,请检查文档:
http://docs.djangoproject.com/en/dev/topics/http/middleware/ http://docs.djangoproject.com/en/dev/topics/http/middleware/
您还可以查看这篇文章:
http://mitchfournier.com/2010/07/12/show-a-custom-403-forbidden-error-page-in-django/ http://mitchfournier.com/2010/07/12/show-a-custom-403-forbidden-error-page-in-django/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)