我使用require_http_methods来限制对视图的访问。这是我的代码示例:
# myapp/views.py
@require_http_methods(["POST"])
def my_view(request):
return HttpResponse('my_view')
但是当我去网址/myapp/my_view
时,我看到了白页。所以,我的问题是:如果方法与规则不匹配,我如何设置默认视图?例如,我想显示404,403或其他东西。有可能的?你能给我一个小例子吗?谢谢!
答案 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可能很有用。