Django テンプレート タグに関する疲れた知識

01-タグ用

Django テンプレートでは、for タグはループの反復に使用される重要なタグです。その構文は Python の for ループに似ていますが、Django テンプレートでは特別な使用法がいくつかあります。以下に、Django テンプレート タグfor の詳細を示します。

基本的な文法

{% for item in items %}
    {# 循环体 #}
    {
   
   { item }}
{% endfor %}
  • {% for item in items %}: ループを開始します。item はループ変数、items はループによって反復されるデータです。
  • {# 循环体 #}: ループ本体内で実行されるテンプレート コード。
  • { { item }}:ループ変数の値を表示します。
  • {% endfor %}: ループを終了します。
    注: items は反復可能オブジェクトであり、この反復可能オブジェクトはビュー関数で生成されている必要があり、テンプレートで再度生成することはできません。つまり、次の記述方法は正しいです。
    {% for line_number in context1.page_range_pc %}
    <p>第{
   
   { line_number }}行</p>
    {% endfor %}

しかし、それを書く方法は次のとおりです。

	{% for line_number in range(context1.page_range) %}
	    <p>第{
   
   { line_number + 1 }}行</p>
	{% endfor %}

それは間違いです。つまり、 range() 関数を for template タグ内で使用することはできません。

ループ変数と空変数

Django テンプレートでは、for ループにより、ループ本体内で使用できるループ変数が作成されます。ループ データが空の場合は、 empty キーワードを使用して処理できます。

{% for item in items %}
    {
   
   { item }}
{% empty %}
    <p>No items available.</p>
{% endfor %}

ループタグ内のフィルター

for ループでフィルタを使用してデータを処理できます。

{% for item in items|filter:"search_query" %}
    {
   
   { item }}
{% endfor %}

ループ内のカウンター

現在のループのインデックスまたはカウントを取得する必要がある場合は、forloop オブジェクトを使用できます。

{% for item in items %}
    {
   
   { forloop.counter }}: {
   
   { item }}
{% endfor %}
  • forloop.counter: 現在のループのカウンター (1 から始まります)。
  • forloop.counter0: 0 から始まる現在のループのカウンター。

ループ内のその他のプロパティ

forloop オブジェクトには、現在の要素がループ内の最初の要素であるかどうかを示す forloop.first 、現在の要素であるかどうかを示す forloop.last など、他の属性もあります。要素はループ内にあります 最後の要素。

{% for item in items %}
    {% if forloop.first %}
        First: {
   
   { item }}
    {% elif forloop.last %}
        Last: {
   
   { item }}
    {% else %}
        {
   
   { item }}
    {% endif %}
{% endfor %}

入れ子になったループ

Django テンプレートはループのネストをサポートしています。1 つのforループを別のループ内にネストできます。

{% for category in categories %}
    <h2>{
   
   { category.name }}</h2>
    <ul>
        {% for item in category.items %}
            <li>{
   
   { item.name }}</li>
        {% endfor %}
    </ul>
{% endfor %}

これらは、Django テンプレートでの for タグの基本的な使用法です。特定のニーズに応じて、他のテンプレート タグとフィルタを組み合わせて、より複雑なロジックを実装できます。

おすすめ

転載: blog.csdn.net/wenhao_ir/article/details/134732664