1

我使用以下查询查询 Django 模型:

for i in models.short_url.objects.filter(created_at__month=m,url_hash='DCmuih'):
    count = i.click_info_set.count()

有一种方法可以获取计数但没有月份过滤器

print models.short_url.objects.get(url_hash='DCmuih').click_info_set.count()

但是我如何使用相同的查询但没有 for 循环......有人可以帮助我吗?

4

1 回答 1

1

仅仅通过查询集来简单地猜测总是有点困难,但这应该大致做到:

from django.db.models import Count

queryset = models.short_url.objects.filter(
    created_at__month=m,
    url_hash='DCmuih',
).annotate(click_info_count=Count('click_info__id'))

for short_url in queryset:
    print short_url, short_url.click_info_count
于 2013-09-08T10:58:29.413 回答