Django:用于显示不同信息的标签中的循环

san*_*lto 2 python django templates for-loop

我遇到了这个问题:假设您有一个博客应用程序,并且您想要显示所有创建的帖子.但是你的帖子可以是"粘性"或"特色",必须首先显示,并且必须位于不同的html"块"中.也许这不是最好的例子,但毕竟是我需要的.

所以,模型很简单:

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']
Run Code Online (Sandbox Code Playgroud)

在视图中,我只是查询所有帖子并将其显示在模板中:

def my_view(request):
  return render_to_response('template.html',{'posts':Post.objects.all()})
Run Code Online (Sandbox Code Playgroud)

现在,问题出在我的模板中,我希望得到的结果如下:

<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>
Run Code Online (Sandbox Code Playgroud)

我能做什么?我在想,也许我可以抓住那些分开的,这样:

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

但我真的不喜欢这种方法,有没有"基于模板"的解决方案?

谢谢!

Ign*_*ams 5

featured球场上重新组合.