Как создать собственную страницу 403 в Django? - PullRequest
3 голосов
/ 18 января 2012

Следуя этой документации (https://docs.djangoproject.com/en/dev/topics/http/views/#customizing-error-views), Я пытаюсь создать пользовательскую страницу ошибки 403 для моего приложения Django.

Я создал обработчик ошибок в своем URLConf:

handler403 = 'courses.views.error403'

Я также создал представление, которое обрабатывает ошибку 403, которое называется error403:

def error403(request):
    '''
    Default view for error 403: Inadequate permissions.
    '''
    return render_to_response('utility/mustLogin.html', {'user': request.user})

Однако это представление просто не отображается. Когда я специально запускаю ошибку 403, просто появляется страница браузера 403 по умолчанию.в отличие от моего шаблона.

Default browser 403

Я забыл совершить какое-нибудь действие? Спасибо.

Ответы [ 2 ]

5 голосов
/ 18 января 2012

handler403 является новой версией для разработчиков.Если вы используете более старую версию (<= 1.3), эта опция еще не реализована. </p>

Есть несколько способов сделать это в более старых версиях, как описано здесь .Он включает в себя новое промежуточное программное обеспечение, пользовательское исключение и HttpResponseForbidden .Не знаю, насколько хорошо он будет интегрирован с остальной частью вашего проекта, хотя ...

4 голосов
/ 18 января 2012

Google Chrome заменит его на общий, если размер возвращаемой страницы меньше 512 байт.Они делают то же самое с 404 ответами.

Для чего стоит Internet Explorer делает то же самое.

Если ваш ответ превышает 512 байт, то все будет хорошо.

...