优化Django查询

时间:2011-07-18 21:24:54

标签: django django-templates django-queryset

我有一个页面,用户可以在其中查看特定产品的评论列表。

在视图中,我得到了以下列表:

comments = product.comments.all().order_by('-timestamp')

和模板中的这篇文章:

1   {% if comments %}
2       {% for comment in comments %}
3       <div class="comment">
4           <a href="/user/{{ product.author }}/">{{ comment.author }}</a>
5           <br>{{ comment.text }}
6       </div>
7       {% endfor %}
8   {% endif %}

当我转到产品页面时使用django调试工具栏我可以看到Django执行许多查询是列表中的许多注释。例如,在包含10条评论的评论列表的产品页面中,Django执行大约15个查询。如果我提交新评论,查询次数将增加到16次。

如果我尝试删除{{ comment.author }}(第4行),如果我提交新评论,查询会减少到固定数字。如何优化这个?

注意:comment.authordjango.contrib.auth.models.User

的ForeignKey

1 个答案:

答案 0 :(得分:4)