Подтвердить что ты не робот

Как заставить шаблон Django вызывать ошибку, если переменная отсутствует в контексте

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

TEMPLATE_STRING_IF_INVALID может быть настроено на что-то, и тогда мы можем проверить, что это что-то не в визуализированном шаблоне, но это совсем не элегантно.

Могу ли я как-то без особых усилий переопределить способ Context проглатывает недостающие ошибки?

4b9b3361

Ответ 1

Существует фрагмент 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()