#python #django #templates #configuration
#python #django #шаблоны #конфигурация
Вопрос:
Есть ли какой-либо способ создать исключение, если входные параметры шаблона недопустимы? В старой версии django мы можем сделать это, как показано в приведенном ниже коде. Но как насчет последней версии django? Существует опция для установки string_if_invalid = ‘string’, но единственная причина, по которой нам нужно создавать исключение для этого, заключается в том, что мы, очевидно, не ожидаем, что почтовый сервер будет отправлять клиентам ненужные электронные письма.
Спасибо.
# settings.py in old versions
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()
Ответ №1:
В Django<=1.9
TEMPLATE_STRING_IF_INVALID = 'DEBUG WARNING: undefined template variable [%s] not found'
в вашем settings.py.
В Django>= 1.10
string_if_invalid = 'DEBUG WARNING: undefined template variable [%s] not found'
Также проверьте эту ссылку о недопустимых переменных шаблона
Комментарии:
1. Все в порядке, пожалуйста, если вы найдете решение, опубликуйте его здесь
Ответ №2:
В pytest вы можете использовать FAIL_INVALID_TEMPLATE_VARS
Смотрите документы: https://pytest-django.readthedocs.io/en/latest/usage.html#fail-on-template-vars-fail-for-invalid-variables-in-templates