Django 500 сообщение в пользовательском шаблоне - PullRequest
10 голосов
/ 31 мая 2011

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

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

raise Exception("You broke it!")

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

{{ exception.message }}

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

G

Ответы [ 2 ]

18 голосов
/ 31 мая 2011

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

Как включить трассировку стека в мою страницу 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

3 голосов
/ 11 декабря 2013

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...