如何确定 Jinja2 模板块是不是为空?

Posted

技术标签:

【中文标题】如何确定 Jinja2 模板块是不是为空?【英文标题】:How can I determine if a Jinja2 template block is empty?如何确定 Jinja2 模板块是否为空? 【发布时间】:2013-09-14 06:43:13 【问题描述】:

我想检测 Jinja2 模板块内容是否为空。像这样的:

% block foo %% endblock foo %% if foo % - % endif %Blah Blah Blah

我想要的是块定义本身外部的条件文本。在这个人为的例子中,我希望能够在块被覆盖且不为空的情况下插入条件字符串-块之后

这可能吗?

【问题讨论】:

【参考方案1】:

只需调用块:

% if self.foo() % - % endif %

【讨论】:

我不配!谢谢,效果很好。我是否在文档中错过了这一点,或者它是那些“专业提示”项目之一......? @Inactivist - 它隐藏在template designer docs“如果你想多次打印一个块,你可以使用特殊的 self 变量并使用该名称调用块”。 请注意,相关块必须完全为空,这一点很重要。我有一个换行符,它正在评估空字符串,但仍然算作真实。 @BrianPeterson:使用trim 过滤器忽略前导和尾随空格:% if self.foo() | trim % - % endif %

以上是关于如何确定 Jinja2 模板块是不是为空?的主要内容,如果未能解决你的问题,请参考以下文章

带有 jinja2 模板的 django allauth

Jinja2 设置块在 Django 中无法识别

如何确定中继查询是不是为空或未加载

如何在 jinja2 中编辑一些扩展块?

如何使用 com.ericsson.otp.erlang 确定 erlang 术语是不是为空

如何调试 Jinja2 模板?