2017-04-10 54 views

回答

2

第一種方法(forloop.counter):

{% for x in objects %} 
    {% if forloop.counter <= 5 %} 
     access first 5 objects 
    {% else %} 
     access last 5 objects 
    {% endif %} 
{% endfor %} 

方法二:

# views.py 

def my_view(request): 
    first_five_obj = MyModel.objects.all()[:5] 
    last_five_obj = MyModel.objects.all()[-5:] 
    return render(request, 'template.html', locals()) 

<!-- template.html --> 

{% for x in first_five_obj %} 
    .....first 5 objects...... 
{% endfor %} 

{% for x in last_five_obj %} 
    .....last 5 objects...... 
{% endfor %} 
+0

謝謝,我更喜歡第一種方法,其他方法都沒有,我將添加其他for循環條件{%if forloop.counter> 5%} –

+0

當然!如果這對你有用。 –

1
  • 您可以考慮使用自定義模板標籤。

  • 可以通過對象循環:

    {% for x in objects %} 
        {% if forloop.counter <= 5 %} 
         # ....do something.... 
        {% endif %} 
    {% endfor %} 
    
    {% for x in objects %} 
        {% if forloop.revcounter <= 5 %} 
         # ....do something.... 
        {% endif %} 
    {% endfor %} 
    
  • 你可以得到的物品直接(假設物體的長度不會在列表中顯示最近5時更改。):

    {{ objects.0 }} 
    {{ objects.1 }} 
    {{ objects.2 }} 
    ... 
    {{ objects.7 }} 
    {{ objects.8 }} 
    {{ objects.9 }} 
    
+0

第二個它幫助我瞭解我正在開發的其他東西,但注意到它的頁面表現更慢,但謝謝。 –

相關問題