gpt4 book ai didi

django - 使用@require_POST 时如何在 Django 中显示 HTTP 状态 405(不允许的方法)的自定义错误页面

转载 作者:行者123 更新时间:2023-12-04 02:03:40 28 4
gpt4 key购买 nike

我的问题很简单,当使用 @require_POST 时,如何在 Django 中显示 HTTP 状态 405(方法不允许)的自定义错误页面装饰师?

我正在使用 django.views.decorators.http.require_POST装饰器,当 GET 请求访问页面时,控制台显示 405 错误,但页面只是空白(甚至不是 Django 错误页面)。如何让 Django 为此类错误显示自定义和/或默认错误页面?

编辑:
值得一提的是,我曾尝试将 404.html、500.html 和 405.html 页面放在我的模板文件夹中 - 但这也无济于事。我也在DEBUG = True之间变化和 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://mitchfournier.com/2010/07/12/show-a-custom-403-forbidden-error-page-in-django/

关于django - 使用@require_POST 时如何在 Django 中显示 HTTP 状态 405(不允许的方法)的自定义错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4614294/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com