Python 从Django中的请求获取错误消息
如果用户访问不允许访问的页面,我试图引发403错误。在我的视图中.pyPython 从Django中的请求获取错误消息,python,django,http-status-code-403,Python,Django,Http Status Code 403,如果用户访问不允许访问的页面,我试图引发403错误。在我的视图中.py def staff_room(request): user = request.user role = School.objects.get(user=user) if not role.is_teacher: raise PermissionDenied("Get out of the staff room!") def library(request): user = request.user
def staff_room(request):
user = request.user
role = School.objects.get(user=user)
if not role.is_teacher:
raise PermissionDenied("Get out of the staff room!")
def library(request):
user = request.user
role = School.objects.get(user=user)
if not role.is_librarian:
raise PermissionDenied("Get out of the library!")
在my403.html中,我希望检索错误引发的不同消息。有没有办法做到这一点?类似于{{exception.message}}的东西,比如说
{% extends 'base.html' %}
You are not allowed to enter this room. {{ exception.message}}
Django文档告诉我们,对于403个错误,它在如下上下文中传递异常
return http.HttpResponseForbidden(
template.render(request=request, context={'exception': force_text(exception)})
)
因此,似乎您应该能够使用{{{exception}}
访问异常的消息。否则,您可以覆盖默认403视图并手动传递异常消息(甚至格式化它)