Пользовательская страница Django 404 и страница отладки Django - PullRequest
3 голосов
/ 21 сентября 2011

Я развертываю веб-страницу Django, и мне нравится страница Django Debug 404 и страница Django, когда возникает ошибка Python.Однако они не подходят для веб-страницы, которая выходит в сеть.Итак, я сделал пользовательскую страницу 404.Тем не менее, для меня и моего IP-адреса я хочу, чтобы все еще появлялись страницы отладки Django.Есть ли способ сделать это, если я установил для Debug значение false?

1 Ответ

6 голосов
/ 21 сентября 2011

Вы можете определить свой собственный вид обработчика для 404, установив handler404 в вашем urlconf.Обработчик по умолчанию 404 - django.views.defaults.page_not_found, который в основном просто отображает шаблон 404.html.

Если вы поместите это в свой urlconf, он покажет «технический» ответ 404 (симпатичная желтая страница) для определенногоIP, и используйте стандартное производственное представление Django 404 для других IP-адресов:

import sys
from django.views.debug import technical_404_response
from django.views.defaults import page_not_found

def handler404(request):
    if request.META['REMOTE_ADDR'] == 'YOUR_IP_ADDRESS':
        exc_type, exc_value, tb = sys.exc_info()
        return technical_404_response(request, exc_value)
    else:
        return page_not_found(request)

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

См. Документацию по сообщениям об ошибках и ведению журнала (Каркас ведения журнала был добавлен в 1.3)

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