我在视图的dispatch()中编写这样的代码来约束对特定用户的访问:
if user.name != 'admin':
raise PermissionDenied("you don't have access")
如果引发异常,它只会显示在重定向的页面上:
403 Forbidden
是否可以让django显示错误页面,原因如下:
403 Forbidden
you don't have access
答案 0 :(得分:0)
您可以使用django中间件并使用HttpResponseForbidden
像这样编写django中间件,
from django.shortcuts import HttpResponseForbidden
class ForbiddenMiddleware(object):
"""
Don't give permissions for particular without admin
"""
def process_request(self, request):
if not request.user.is_superuser:
return HttpResponseForbidden("403 Forbidden , you don't have access")
return None
注意:上述中间件适用于所有视图。
如果您想限制特定视图,可以使用它,
def my_view(request, ):
if not request.user.is_superuser:
return HttpResponseForbidden("403 Forbidden , you don't have access")
else:
# your render
答案 1 :(得分:-1)
使用自定义403错误视图。你会在互联网上找到很多例子。