如何在Django模板中使用if/else条件?

50few1ms  于 2022-12-30  发布在  Go
关注(0)|答案(4)|浏览(147)

我将下面的字典传递给了一个呈现函数,其中sources是一个字符串列表,title是一个字符串,可能等于sources中的一个字符串:

{'title':title, 'sources':sources})

在HTML模板中,我想完成以下几行中的一些内容:

{% for source in sources %}
  <tr>
    <td>{{ source }}</td>
    <td>
      {% if title == {{ source }} %}
        Just now!
      {% endif %}
    </td>
  </tr>
{% endfor %}

但是,以下文本块会导致错误:

TemplateSyntaxError at /admin/start/
Could not parse the remainder: '{{' from '{{'

... {% if title == {{ source }} %}以红色突出显示。

mw3dktmi

mw3dktmi1#

你不应该在ififequal语句中使用双括号{{ }}语法,你可以像在普通python中一样访问变量:

{% if title == source %}
   ...
{% endif %}
0g0grzrc

0g0grzrc2#

很抱歉在旧帖子中发表评论,但如果你想使用else if语句,这将对你有所帮助

{% if title == source %}
    Do This
{% elif title == value %}
    Do This
{% else %}
    Do This
{% endif %}

有关详细信息,请访问https://docs.djangoproject.com/en/3.2/ref/templates/builtins/#if

iklwldmw

iklwldmw3#

{% for source in sources %}
  <tr>
    <td>{{ source }}</td>
    <td>
      {% ifequal title source %}
        Just now!
      {% endifequal %}
    </td>
  </tr>
{% endfor %}

                or

{% for source in sources %}
      <tr>
        <td>{{ source }}</td>
        <td>
          {% if title == source %}
            Just now!
          {% endif %}
        </td>
      </tr>
    {% endfor %}

参见Django文档

3yhwsihp

3yhwsihp4#

你试试这个。
我已经在我的django模板中试过了。
它将工作正常。只需从**{{source}}中删除花括号对{{and}}
我还添加了
** 标记和*就是这样***。
修改后,您的
代码**将如下所示。

{% for source in sources %}
   <table>
      <tr>
          <td>{{ source }}</td>
          <td>
              {% if title == source %}
                Just now! 
              {% endif %}
          </td>
      </tr>
   </table>
{% endfor %}

我的字典如下所示,

{'title':"Rishikesh", 'sources':["Hemkesh", "Malinikesh", "Rishikesh", "Sandeep", "Darshan", "Veeru", "Shwetabh"]}

模板渲染后,OUTPUT如下所示。

Hemkesh 
Malinikesh  
Rishikesh   Just now!
Sandeep 
Darshan 
Veeru   
Shwetabh

相关问题