1
查詢集我有inital查詢集和我遍歷這個過濾器在使用循環
stats = {}
queryset = Item.objects.all()
for sub in Subject.objects.all():
stats[str(sub.id)] = queryset.filter(subjects=sub.id).count()
我怎麼能這樣不打DB如此頻繁?
查詢集我有inital查詢集和我遍歷這個過濾器在使用循環
stats = {}
queryset = Item.objects.all()
for sub in Subject.objects.all():
stats[str(sub.id)] = queryset.filter(subjects=sub.id).count()
我怎麼能這樣不打DB如此頻繁?
from django.db.models import Count
stats = Subject.objects.annotate(count=Count('item'))
現在每個統計對象將有count
領域:
stats[0].count
Subject.objects.values('pk').annotate(total=Count('item'))
該解決方案是你的情況比較好,使用'值()'當你需要一個不同的分組。 – 2013-05-13 09:49:35