如何使用过滤器查询Django模型

时间:2013-09-08 10:54:53

标签: python django django-orm

我使用以下查询查询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循环......有人可以帮助我。

1 个答案:

答案 0 :(得分: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