.append() returns None

.append() returns None

我怎么能“沉默”呢?它努力 html

<h2>Requested,</h2>
<ul>
    <br>
    {% set repetitions = [] %}
    {% for statement in statements if statement.text not in repetitions %}

        <li><p>{{statement.text}}</p></li>
        {{ repetitions.append(statement.text) }}

    {% endfor %}
</ul>

我认为您可以利用 do 标记来执行追加,但不打印任何内容。我 运行 在我的环境中对单词 repetitions 有疑问,所以我将变量 repetitions 更改为 repeated。我还添加了一个语句变量并在末尾打印 repeated 用于测试目的。您修改后的代码可能是:

代码:

{%- set statements = [{'text':'something'},{'text':'something_else'},{'text':'something_else'}] -%}

<h2>Requested,</h2>
<ul>
    <br>
    {%- set repeated = [] -%}
    {% for statement in statements if statement.text not in repeated %}
        <li><p>{{- statement.text -}}</p></li>
        {%- do repeated.append(statement.text) %}
    {%- endfor %}
</ul>

{{ repeated }}

输出:

<h2>Requested,</h2>
<ul>
    <br>
        <li><p>something</p></li>
        <li><p>something_else</p></li>
</ul>

['something', 'something_else']

来源:Jinja 文档 >> 表达式语句 https://jinja.palletsprojects.com/en/2.11.x/templates/#expression-statement