Django 404 дилемма - PullRequest
       6

Django 404 дилемма

1 голос
/ 13 августа 2011

У меня ошибка в моей настройке 404. Я знаю это, потому что, когда я пытаюсь добраться до какой-то несуществующей страницы, я получаю свой шаблон ошибки сервера. Но эти шаблоны бесполезны, потому что они не дают мне никакой отладочной информации. Чтобы получить страницу отладки django, мне нужно установить DEBUG = True в файле настроек. Но если я это сделаю, ошибка не появится, потому что django не пытается получить доступ к моей глючной настройке 404. Так что вы думаете, ребята?

Это в моем корневом файле URL: handler404 = 'portal.blog.views.handlenotfound' И это в portal.blog.views.handlenotfound:

def handlenotfound(request):
    global common_data
    datas = {
        'tags' : Tag.objects.all(),
        'date_list' : Post.objects.filter(yayinlandi=True).dates("pub_date","year")
    }
    data.update(common_data)
    return render_to_response("404.html",datas)

<ч /> Изменить:

Полагаю, мне также нужно вернуть HttpResponseNotFound, верно?

Ответы [ 2 ]

2 голосов
/ 13 августа 2011

Если бы мне пришлось отлаживать такого рода ошибки, я бы либо

  • временно превращает обработчик в простое представление, обслуживаемое пользовательским URL, чтобы внутренние механизмы django не мешали, или

  • (временно) оберните код обработчика в блок try..except для регистрации любой ошибки, которую вы могли пропустить

В любом случае, вы уверены, что ваш обработчик не будет вызван, если DEBUG = true?

2 голосов
/ 13 августа 2011

data.update(common_data) должно быть datas.update(common_data).

(Кстати, данные уже во множественном числе: единственное число является базовым.)

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