Как записать предупреждение о неопределенной переменной в шаблоне
Кажется, что Django полагается, что неопределенные переменные являются простой пустой строкой.Поэтому вместо того, чтобы изменить это поведение или заставить его вызвать исключение, давайте оставим его таким же, но вместо этого запишем предупреждение вместо этого!
В вашем файле settings.py
:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
# ...
'OPTIONS': {
# ...
'string_if_invalid': InvalidStringShowWarning("%s"),
},
}
]
(string_if_invalid
заменяет TEMPLATE_STRING_IF_INVALID
в более новых версиях Django.)
И далее вам нужно будет определить класс InvalidStringShowWarning
, который будет вести себя при регистрации предупреждения:
class InvalidStringShowWarning(str):
def __mod__(self, other):
import logging
logger = logging.getLogger(__name__)
logger.warning("Undefined variable or unknown value for: '%s'" % (other,))
return ""
Вы должны увидеть предупреждение на выходе python manage.py runserver
.