Как заставить шаблон Django вызывать ошибку, если переменная отсутствует в контексте
Я использую шаблоны Django в проекте, отличном от Django, и хочу, чтобы в моих шаблонах не содержалось ссылок на переменные, которые не находятся в контексте, и для этого мне нужен инструмент визуализации Django для повышения ошибки, когда он видит {{ non_existent_variable }}
, когда в Контексте нет non_existent_variable
.
TEMPLATE_STRING_IF_INVALID
может быть настроено на что-то, и тогда мы можем проверить, что это что-то не в визуализированном шаблоне, но это совсем не элегантно.
Могу ли я как-то без особых усилий переопределить способ Context проглатывает недостающие ошибки?
Ответы
Ответ 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()