2015-03-22 3 views
0

Ну, на данный момент я знаю, как создать пользовательскую страницу ошибки 404 (и она действительно работает в моем приложении). Я пошел по той же стратегии шаг за шагом, чтобы сделать страницу 403, но безрезультатно. Таким образом, это то, что я сделал:Не удалось предоставить шаблон для ошибки 403

#root urls.py 
handler403 = 'blog.views.custom_403' 

#blog views.py 
def custom_403(request): 
    template = loader.get_template('blog/403.html') 
    context = RequestContext(request,{}) 
    return HttpResponse(template.render(context)) 

Тогда, в одном из своих функций, у меня есть этот код:

return HttpResponseForbidden() 

Я думал, это сделало бы 403.html, но то, что я вижу, это просто сообщение 403 FORBIDDEN в консоли.

ответ

1

Беда в том, что вы не поднимая 403 исключения (как это было сделано для 404), а просто возвращаете ответ с кодом состояния 403. Как the docs show, вам нужно поднять django.views.defaults.permission_denied для запуска 403 страницы.

from django.core.exceptions import PermissionDenied 
... 
raise PermissionDenied 
Смежные вопросы