我在一个非Django项目中使用Django模板,我想确保我的模板不包含对不在上下文中的变量的引用,为此,我需要Django模板渲染器在上下文中没有non_existent_variable
时看到{{ non_existent_variable }}
时引发错误.
可以将TEMPLATE_STRING_IF_INVALID
设置为某个值,然后我们可以判断该值是否不在呈现的模板中,但这一点也不优雅.
我可以在不做太多工作的情况下,以某种方式覆盖上下文接受丢失的关键错误的方式吗?
我在一个非Django项目中使用Django模板,我想确保我的模板不包含对不在上下文中的变量的引用,为此,我需要Django模板渲染器在上下文中没有non_existent_variable
时看到{{ non_existent_variable }}
时引发错误.
可以将TEMPLATE_STRING_IF_INVALID
设置为某个值,然后我们可以判断该值是否不在呈现的模板中,但这一点也不优雅.
我可以在不做太多工作的情况下,以某种方式覆盖上下文接受丢失的关键错误的方式吗?
有一个Django Snippet,它提供了一个解决方案:
# 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()