Сообщение 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 и другие) из основного каталога шаблонов вашего проекта, если он есть.
Итак, если вам нужно изменить статический контент страницы, например вставить некоторые изображения на страницу с ошибкой, все, что вам нужно сделать, это создать файл шаблона в этом месте.