テンプレート内のこの1ビットのコード(太字)は、最大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 %}
ユニパートとパートの関係は次のとおりです。
class UniPart (models.Model):
model = models.ManyToManyField (Part, related_name = 'uniparts')
私の見解は次のとおりです。
latestupdates = Part.objects.all().order_by('-added')
基本的に私が欲しいのは、Partにリンクする5つのUnipartオブジェクトを取得することです。しかし、これは私に多大な時間を費やしています!!! 私がしたよりも効率的な方法は何ですか?私は実際に600を超えるデータベースクエリを持っていますが、これはかなり哀れで、データベースの最適化について読んでいますが、このビットについては、関連するものを見つけることができません。ヘルプ!:-)