我发现我的模板中的这一段代码(粗体)产生了大约 250 个查询并且让事情变得非常慢:
{% for part in latestupdates %}
{{ part }}
**{% for unipart in part.uniparts.all|slice:":5" %}**
<tr>
<td>
<p style ="font-size:12px;"><a href = "/spices/{{ unipart_id }}/view_part">{{ unipart.part }}</a></p></td>
<td><img src="{{ STATIC_URL }}images/company_logos/thumbs/{{part.model.all.0.manufacturer}}.jpg" alt="{{part.model.all.0.manufacturer}} {{unipart.part}}" height="24" width='115' /></td>
</tr>
{% endfor %}
{% endfor %}
Unipart与Part的关系如下:
class UniPart (models.Model):
model = models.ManyToManyField (Part, related_name = 'uniparts')
我的看法如下:
latestupdates = Part.objects.all().order_by('-added')
基本上我想要的是获得 5 个链接到 Part 的 Unipart 对象。但这花费了我很多时间!!!有什么比我做的更有效的方法?我实际上有超过 600 个数据库查询,这非常可悲,我正在阅读数据库优化,但对于这一点,我找不到任何相关的东西。帮助!:-)