2010-10-11 14 views
55
nesneleri sınırlamak için yollarından

biri yerine bir şablonu içinde bunu başarmak nasıl Ancak buziyade görünümü tarafında daha, şablon tarafını nesneleri

def ten_objects(): 
    obj = Model.objects.all()[0:10] # limit to 10 
    return {'objects': obj} 

gibi bir işleve bir sınırlama eklemektir bir görünümden daha mı?

Şablon içindeki nesneleri filtreleyebileceğinizi ve karakterleri sınırlandırabileceğinizi biliyorum, ancak döngüde görüntülenen nesnelerin miktarını gerçekten nasıl sınırlandırıyorsunuz? Şablon aracılığıyla. Örneğin aşağıdaki kod tüm nesneler aracılığıyla döngü .... ben devreyi keserek nasıl

<ul> 
    {% for new in news %} 
     <li> 
     <p>{{ news.title }}</p> 
     <p>{{ news.body }}</p> 
     </li> 
    {% endfor %} 
    </ul> 

, köknar sonra 3 nesneler/ürün diyecekler. Ve bunu şablonun içinde nasıl yaparım? Şimdiden teşekkürler.

+1

'slice'

cevap

127

Şablonlarda kullanabileceğiniz slice filtresi var. Bu tam olarak görünümde dilimleme ile aynı şekilde çalışır.

{% for new in news|slice:":10" %} 
10

Sen slice şablon filtresi Burada

kullanmak istediğiniz örnek kullanmak için değiştirilmiş oluyor: Ben biraz dırdırcı biliyorum

<ul> 
{% for new in news|slice:":3" %} 
<li> 
<p>{{ new.title }}</p> 
<p>{{ new.body }}</p> 
</li> 
{% endfor %} 
</ul> 
+1

ama bu olmalıdır: '{{new.title}}' ve '{{new.body}}' – Hussam

+0

bu, kabul edilen yanıttan daha eksiksiz bir kod örneğidir, bu daha yararlı bir yanıttır, bu yüzden neden beklediğimi ve neden açıkladığımı açıklarım. – Keith

İlgili konular