优化Django查询

优化Django查询,django,django-templates,django-queryset,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 }

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

在视图中,我使用以下内容获取列表:

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.author是django.contrib.auth.models.User的外键

我认为这是一个与选择相关的例子


我认为这是一个与select_相关的案例


我不确定你是否需要担心这方面的优化,除非你期望每个产品都有100或1000条评论。当你做这个查询时,你是否觉得需要花很长时间才能得到这10条评论?我不确定你是否需要担心这方面的优化,除非你期望每个产品都有100或1000条评论。当你做这个查询时,你是否觉得这10条评论太长了?是的,我刚刚找到了。令人惊叹的是的,我刚找到。令人惊叹的