13

私は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 %}

これはうまく機能しますが、このページで変数を宣言したいと思います。この例では、表示される d ごとに増加する RowNumber を使用して、現在の RowNumber を吐き出すことができます。

私はやってみました:

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

しかし、RowNumber を宣言することはできないようです。

4

4 に答える 4

21

ループに関するドキュメントを確認してください。for

forloop.counter現在の反復インデックスを保持するという変数が自動的に作成されます。

変数を宣言する方法に関するより大きな問題に関しては、Django ですぐに使用できる方法はなく、欠落している機能ではなく機能と見なされます。これを本当にやりたい場合は、カスタムタグを使用して可能ですが、ほとんどの場合、従いたい哲学は、これを必要とするほとんどすべてのことをビューで行う必要があり、テンプレートを非常に予約する必要があるということです。シンプルなロジック。たとえば、合計を合計する例として、追加フィルターを使用できます。同様に、タグと同様に独自のフィルターを作成できます。

于 2009-04-05T15:38:44.903 に答える
6

Django テンプレート内に任意の変数を設定したい場合は、私が書いたこの小さなテンプレート タグを使用できます。

于 2011-02-18T10:38:13.107 に答える
3

これはそれを行う方法です:

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

参照:タグ付き

この投稿のjohnyardenによる: How to set a value of a variable inside a template code?

于 2013-10-13T18:43:18.310 に答える
2

テンプレート内:

{% 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 ...

于 2011-11-14T20:51:48.830 に答える