簡體   English   中英

Django模板-新變量聲明

[英]Django Template - New Variable Declaration

讓我作為我剛開始使用Python的序言,如果這真的是一個簡單的問題,^ _ ^

我有一個具有以下內容的html文件:

        {%for d in results%}
        <div class="twt">
            <img src="{{ d.profile_image_url }}" width="48px" height="48px" /> <span> {{ d.text }} </span>
            <span class="date">{{ d.created_at }}</span>
        </div>
    {% endfor %}

效果很好,但我也想在此頁面上聲明一個變量。 假設在此示例中,我們可以使RowNumber隨顯示的每個d遞增,吐出當前的RowNumber。

我試着做:

{{ RowNumber = 0}} 
{{ RowNumber ++ }}

但這似乎不允許我聲明RowNumber。

查看有關for循環的文檔

它會自動創建一個名為forloop.counter的變量,該變量保存當前的迭代索引。

至於關於如何聲明變量的更大問題,沒有使用Django的即開即用的方法,並且它不被視為缺少的功能,而是一種功能。 如果您確實想執行此操作,則可以使用自定義標簽,但是在大多數情況下,您要遵循的基本思想是,大多數您想執行的操作都需要在視圖中完成,並且模板應保留為簡單的邏輯。 例如,對於總計的示例,可以使用添加過濾器。 同樣,您可以像創建標簽一樣創建自己的過濾器

如果您想在Django模板中設置任何變量,則可以使用我編寫的這個小模板標簽

這是怎么做的:

{% with name="World" greeting="Hello" %}     
<html>
<div>{{ greeting }} {{name}}!</div>
</html>
{% endwith %}

另見: 帶標簽

來自johnyarden的帖子: 如何在模板代碼中設置變量的值?

在模板中:

{% for outer_obj in outer_list %}
    {% for inner_obj in inner_list %}
         {% increment_counter forloop.counter0 forloop.parentloop.counter0 outer_list.count %}
    {% endfor %}
 {% endfor %}

模板標簽:

@register.simple_tag
def increment_counter(outer, inner, outer_loop_length):
    return outer + inner * outer_loop_length + inner * (outer_loop_length - 1)

結果:0 1 2 3 ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM