各リストの項目数をリストしたいと思います。各リストのクエリではなく、1つのクエリでどのようにこの数値を見つけることができますか?Django:クエリの最適化
ここが私の現在のテンプレートコードの簡易版である:List.objects.filter(ユーザー=ユーザー)
とNUM_ITEMSが一覧モデルのプロパティです:として
{% for list in lists %}
<li>
{{ listname }}:
{% with list.num_items as item_count %}
{{ item_count }} item{{ item_count|pluralize }}
{% endwith %}
</li>
{% endfor %}
リストが渡されます:
def _get_num_items(self):
return self.item_set.filter(archived=False).count()
num_items = property(_get_num_items)
これは、nがリストの数ですSELECT COUNT(*) FROM "my_app_item" WHERE...
をn回、照会します。ここで単一のクエリを作成することは可能ですか?
http://docs.djangoproject.com/en/dev/topics/db/aggregation/ –
Ignacio氏は、あなたが指している「グループ化された集約」をどのように取得するかを尋ねていますが、話すことはありません。 –
@Lakshman:あなたがそれを読んでいない場合にのみ。 –