Python 从Django中的请求获取错误消息

Python 从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

如果用户访问不允许访问的页面,我试图引发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
  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视图并手动传递异常消息(甚至格式化它)