Пользовательская страница ошибки 403 в django rest framework - PullRequest
0 голосов
/ 18 сентября 2018

Я пытаюсь переопределить шаблон 403.html по умолчанию для django rest framework, объявив в 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
* приложения.1006 * Каталог шаблона включен в TEMPLATE_DIRS в settings.py.Однако, отправляя запрос к конечной точке, которая имеет разрешение IsAdminUser , визуализирует шаблон drf по умолчанию.

Процедура точно такая же для исключения 404 работает отлично.

Любой ответ, который я видел в Интернете, не помог мне решить проблему.

Ответы [ 3 ]

0 голосов
/ 18 сентября 2018

попробуйте это:

from django.shortcuts import render
def handler403(request, exception, template_name='403.html'):
    return render(request, '403.html')
0 голосов
/ 19 сентября 2018

На самом деле это довольно просто:

Вы должны перезаписать 'custom_exception_handler' DRF, как показано ниже:

def custom_exception_handler(...):
    response = render_to_response('path/to/template/403.html', {})
    response.status_code = 403
    return response

Кроме того, не забудьте импортировать

from Django.shortcuts import render_to_response
0 голосов
/ 18 сентября 2018

Не работает, потому что DRF возвращает ответ json, не отображает шаблон.

...