2012-03-20 34 views
2

我有這個問題:假設你有一個博客應用程序,並且你想顯示所有創建的帖子。但是,您的帖子可以是「粘性」或「精選」,必須先顯示,並且必須位於不同的html「塊」中。也許這不是最好的例子,但畢竟是我需要的。Django:For循環標籤顯示不同的信息

因此,該模式很簡單:

class Post(models.Model): 
    title = models.CharField() 
    content = models.TextField() 
    featured = models.BooleanField(default=False) 
    created = models.DateTimeField(auto_now=False, auto_now_add=True) 
    class Meta: 
    ordering = ['-featured','-created'] 

在視圖我只是查詢所有的職位,並在模板中顯示它:

def my_view(request): 
    return render_to_response('template.html',{'posts':Post.objects.all()}) 

現在的問題是在我模板,我想有作爲的結果,這是什麼:

<html> 
    <div class='featured-posts'> 
    <ul> 
     <li> A Featured post</li> 
    </ul> 
    </div> 
    <div class='not-featured-posts'> 
    <ul> 
     <li> A NON Featured post</li> 
    </ul> 
    </div> 
</html> 

我能做些什麼?我在想,也許我可以抓住這些分開的,這樣說:

return render_to_response('template.html',{ 
    'featured':Post.objects.filter(featured=True), 
    'non_featured':Post.objects.filter(featured=False) 
}) 

但我真的不喜歡這種做法,是否有任何「基於模板的」解決方案?

Thx!

回答

5

Regroupfeatured字段中。

+0

這就是它!真的很簡單!不知道我是如何錯過它的。謝謝Ignacio。 – santiagobasulto 2012-03-20 01:13:56

+0

@santiagobasulto那麼爲什麼你不接受答案? – neoascetic 2012-03-20 02:02:50

+1

Becouse我需要再等3分鐘,然後去吃晚飯。不,我做了。現在我* – santiagobasulto 2012-03-20 02:58:39