Сообщение Django 500 в пользовательском шаблоне

У меня есть шаблон 500.html, который загружается всякий раз, когда мое приложение взрывается, но я хотел знать, можно ли каким-либо образом вывести сообщение об исключении в шаблон?

Итак, если я это сделаю:

raise Exception("You broke it!")

Это будет загружать 500.html, если для флага DEBUG установлено значение True, но как я могу получить доступ к сообщению об исключении в шаблоне? Что-то вроде:

{{ exception.message }}

Большое спасибо.

С

Ответ 1

Посмотрите на этот ответ:

Как включить stacktrace на мою страницу Django 500.html?

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

views.py

def custom_500(request):
    t = loader.get_template('500.html')
    type, value, tb = sys.exc_info(),
    return HttpResponseServerError(t.render(Context({
    'exception_value': value,
})))

где-то в urls.py

handler500 = 'mysite.views.my_custom_error_view'

шаблон

{{ exception_value }}

подробнее об этом здесь: https://docs.djangoproject.com/en/1.6/topics/http/views/#the-500-server-error-view

Ответ 2

Я знаю, что это старый поток, но я просто хочу пояснить:

Ответ правильный, если вы хотите просмотреть custon! В представлении по умолчанию будет загружен файл 500.html(также 404.html и другие) из основного каталога шаблонов вашего проекта, если он есть.

Итак, если вам нужно изменить статический контент страницы, например вставить некоторые изображения на страницу с ошибкой, все, что вам нужно сделать, это создать файл шаблона в этом месте.