django rest框架中的自定义403错误页面
Custom 403 error page in django rest framework
我试图通过在 ulrs.py handler403 = 'my_app.views.handler403'
.
中声明来覆盖 django rest 框架的默认 403.html 模板
并且在应用的 views.py 中:
def handler403(request, exception, template_name='403.html'):
response = render_to_response('403.html', {})
response.status_code = 403
return response
模板的目录包含在 settings.py 中的 TEMPLATE_DIRS 中。
但是,向具有 IsAdminUser 权限的端点发出请求,呈现默认的 drf 模板。
与 404 异常完全相同的 程序工作得很好。
我在网上看到的任何答案都没有帮助我解决问题。
它不起作用,因为 DRF returns json 响应不呈现模板。
试试这个:
from django.shortcuts import render
def handler403(request, exception, template_name='403.html'):
return render(request, '403.html')
其实很简单:
您必须覆盖 'custom_exception_handler' 的 DRF,如下所示:
from Django.shortcuts import render_to_response
def custom_exception_handler(...):
response = render_to_response('path/to/template/403.html', {})
response.status_code = 403
return response
我试图通过在 ulrs.py handler403 = 'my_app.views.handler403'
.
并且在应用的 views.py 中:
def handler403(request, exception, template_name='403.html'):
response = render_to_response('403.html', {})
response.status_code = 403
return response
模板的目录包含在 settings.py 中的 TEMPLATE_DIRS 中。 但是,向具有 IsAdminUser 权限的端点发出请求,呈现默认的 drf 模板。
与 404 异常完全相同的 程序工作得很好。
我在网上看到的任何答案都没有帮助我解决问题。
它不起作用,因为 DRF returns json 响应不呈现模板。
试试这个:
from django.shortcuts import render
def handler403(request, exception, template_name='403.html'):
return render(request, '403.html')
其实很简单:
您必须覆盖 'custom_exception_handler' 的 DRF,如下所示:
from Django.shortcuts import render_to_response
def custom_exception_handler(...):
response = render_to_response('path/to/template/403.html', {})
response.status_code = 403
return response