你如何循环html文件中的Django查询集?

时间:2014-11-07 21:44:35

标签: python django

我有一个视图,其中包含检索电影的所有评论对象的代码:

review = Review.objects.filter(movie= movie)

如何在html 中循环显示这些值,以便我只获得前3个评论对象?像评论[0]这样的索引似乎不起作用。

我在另一篇文章中看到你可以像这样循环遍历html中的所有对象(但这不是我想要的):

{% for obj in review %} 
  <p> {% obj.review_text %} </p>
{% endfor %}

3 个答案:

答案 0 :(得分:2)

为什么不在您的视图中仅获取前3个项目并仅将其返回到上下文中?这似乎是最简单的解决方案。

first_3_reviews = Review.objects.filter(movie= movie)[:3]

或者,您可以使用forloop计数器(请参阅:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#for)仅显示前3个元素:

{% for obj in review %} 
  {% if forloop.counter < 3 %} 
    <p> {% obj.review_text %} </p>
  {% endif %} 
{% endfor %}

答案 1 :(得分:1)

尝试使用

{% for obj in review %}
<p> {{% obj.review_text %}} </p>
{% endfor %}    

它将为您提供轻松使用对象的选项

答案 2 :(得分:1)

{% for obj in review[-3:] %}

这将检索审核中的最后3个项目