是否可以在Django中进行部分模板渲染?

2024-04-19 05:46:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否有可能部分呈现Django模板。让我说清楚我想要什么,请检查一下(这是在django shell python manage.py shell,不是在basic python shell中):

from django.template import Context, Template
t = Template('{{var1}} - {{var2}}, {% if var2 %} {{var3}} {% endif %}')
t.render(Context({'var1': 'test'}))

输出:

'test - , '

但是我想知道,是否有可能只呈现传递的变量,所以我想要的输出是

'test - {{var2}}, {% if var2 %} {{var3}} {% endif %}'

我想得到它,因为我没有通过var2,我这里的主要目标是在几个步骤中呈现模板,而不是在一个步骤中。我知道有一个string_if_invalid设置,但它只用于调试目的。你知道吗


Tags: djangotest模板ifmanagecontext步骤template
1条回答
网友
1楼 · 发布于 2024-04-19 05:46:05

这是不可能的开箱即用。在呈现模板节点时会对变量进行求值,因此每个模板标记都必须支持这一点。你知道吗

对于非常简单的模板,比如{{var1}} - {{var2}},您可以创建一个定制的Context子类,为任何缺少的变量返回{{ key }}。但是,这种方法在使用过滤器或在标记中使用变量时就不能像您的示例中那样工作。你知道吗

相关问题 更多 >