django require_http_methods。默认页面

时间:2015-07-17 11:10:23

标签: python django

我使用require_http_methods来限制对视图的访问。这是我的代码示例:

# myapp/views.py
@require_http_methods(["POST"])
def my_view(request):
    return HttpResponse('my_view')

但是当我去网址/myapp/my_view时,我看到了白页。所以,我的问题是:如果方法与规则不匹配,我如何设置默认视图?例如,我想显示404,403或其他东西。有可能的?你能给我一个小例子吗?谢谢!

1 个答案:

答案 0 :(得分:2)

在您的情况下,返回405 HTTP错误。

您可以尝试为自定义错误创建middleware

from django.http import HttpResponseNotAllowed


class CustomHTTPErrorsMiddleware(object):

    def process_response(self, request, response):
        if isinstance(response, HttpResponseNotAllowed):
            # Custom response for `HttpResponseNotAllowed`.
            pass
        return response

此外,Django的error handling可能很有用。