当前位置: 首页 > 面试题库 >

Jinja2-如何在if语句中放置一个块?

祁修平
2023-03-14
问题内容

我正在尝试使用if来确定哪个区块应填充我的{% block content %}

我有一个base.html默认值{% block content %},此模板正在扩展base.html。所以我尝试了这个:

{% extends "base.html" %}
{% if condition == True %}
    {% block content %}
    <div>blah blah blah blah</div>
    {% endblock content %}
{% endif %}

我期待看到blah blah blah blah条件是否为真,如果条件不正确,则查看默认块。

但是我两次都得到了blah blah blah blah

然后我尝试了一个:

{% extends "base.html" %}
{% if condition == True %}
    {% block content %}
    <div>blah blah blah blah</div>
    {% endblock content %}
{% else %}
    {% block content %}
    <div>The Default Thing</div>
    {% endblock content %}
{% endif %}

我得到这个错误:

TemplateAssertionError: block 'content' defined twice

如何在if语句中放置一个块?


问题答案:

您不能设定{% block %}条件;一旦使用了标签,就总是要填充该块。

相反,将您的条件 放入 块中,并用于super()指示Jinja使用模板中定义的块的原始内容:

{% extends "base.html" %}
{% block content %}
    {% if condition %}
        <div>blah blah blah blah</div>
    {% else %}
        {{ super() }}
    {% endif %}
{% endblock content %}


 类似资料:
  • 是否可以在if语句中放一个runnable,因为我需要它,如果玩家下面有一个凿砂岩,那么它应该在5秒后取出块,是可以这样做还是需要另一种方式?Intellij创意,java插件Minecraft。代码:

  • 请看@accdias所指的https://golangdocs.com/ternary-operator-in-golang(见评论) 我可以像在 php 中那样在 go(golang) 中编写一个简单的带有变量赋值的 if-else 语句吗?例如: 目前,我必须使用以下方法: 很抱歉,如果这个控制声明我记不起名字,我也无法在网站或谷歌搜索中找到信息。:/

  • 我已经阅读了下面的链接,但没有回答我的问题 Python是否有三元条件运算符?(问题是关于将if-else语句压缩到一行) 是否有一种更简单的方法来编写if-elif-else语句,使其适合一行<例如, 或者是一个真实的例子: 我只是觉得如果上面的例子可以用下面的方式写,它看起来会更简洁。

  • 我有两个问题。 ①当useState初始值真假时,if语句如何适应下面? 比如说。。 ②当if语句为true和false时,如何使setGoodBotton从React钩子和if语句适应下面? 例如…(这不是工作)

  • 我如何重构所有这些看起来重复和太长的代码,有没有办法让它变短? 我试过使用Switch语句,但在这种情况下不起作用。 “typeofdata”变量包含一个用于匹配相关行的字符串。

  • 问题内容: 我正在寻找某种if语句来控制不同元素的状态。 我已经尝试了以下内容,但无法编译 问题答案: LESS具有用于mixin的保护表达式,而不是单个属性。 因此,您将创建一个像这样的mixin: 并通过调用或(或完全不调用)将其打开或关闭。