@raiboon

Как заставить Django templates не проглатывать ошибки?

В настройках стоит TEMPLATE_DEBUG.
Но вот обнаружил, что в один метод выбрасывает исключение, а темплейты его проглатывают - долго дебажил, пока не вызвал его в коде.
Ну и вообще, что бы он не замалчивал None значений.
  • Вопрос задан
  • 2294 просмотра
Пригласить эксперта
Ответы на вопрос 2
MAKAPOH
@MAKAPOH
многостаночник
Насколько я помню за это отвечает настройка TEMPLATE_STRING_IF_INVALID. Определите её как '%s'
Ответ написан
Комментировать
@orgkhnargh
медленно пишу на django
# settings.py
class InvalidVarException(object):
    def __mod__(self, missing):
        try:
            missing_str=unicode(missing)
        except:
            missing_str='Failed to create string representation'
        raise Exception('Unknown template variable %r %s' % (missing, missing_str))
    def __contains__(self, search):
        if search=='%s':
            return True
        return False

TEMPLATE_DEBUG=True
TEMPLATE_STRING_IF_INVALID = InvalidVarException()

Будет выбрасывать исключение, если какая-то переменная в шаблоне не инициализирована.
Источник: stackoverflow.com/a/15312316/4227594
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы