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