django - 如果上下文中缺少变量,如何使 Django 模板引发错误

标签 django templates

我在非 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/

相关文章:

python - 迭代与 order_by() 效率

python - 没有声明编码

django - 指定模型中的选项和 ModelForm 中的 RadioButton 呈现未选择的值 "------"

python - 创建单独的 Django 管理站点和单独的权限

html - 如何将子菜单添加到下拉菜单

c++ - 如何在不指定模板参数的情况下将 lambda 与模板参数匹配

php - 使用服务器端语言进行开发但部署到静态 HTML 的最佳方式

python - 如何在 django modelForm 中向输入类型 'multiple' 添加 ='file' 属性?

c++ - 在 C++ 中使用模板

c++ - 有没有办法从变量设置模板参数?