我在非 Django 项目中使用 Django 模板,我想确保我的模板不包含对不在上下文中的变量的引用,为此我需要 Django 模板渲染器在看到 {{ non_existent_variable }}
时引发错误。当没有 non_existent_variable
在上下文中。TEMPLATE_STRING_IF_INVALID
可以设置为 something 然后我们可以检查这个东西不在渲染的模板中,但这一点也不优雅。
我可以在没有太多工作的情况下以某种方式覆盖 Context 吞下丢失的关键错误的方式吗?
最佳答案
有一个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()
关于django - 如果上下文中缺少变量,如何使 Django 模板引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15312135/