Django查询获取相关集计数

时间:2012-01-27 17:48:47

标签: python django django-queryset

我正在查询数据库,并且正在尝试查找名为“item”的相关集的计数。

user_lists = List.objects.filter(user=user).select_related('city','city__country')

会显示我想要的项目,但是为了添加相关集合的计数,我正在添加注释:

user_lists = List.objects.filter(user=user).select_related('city','city__country').annotate(item_count=Count('item'))

但是,这会从db返回一个空查询。有什么想法吗?我没有收到任何错误。只是一个空的查询集。

3 个答案:

答案 0 :(得分:0)

不是一个真正的答案,只是一个关于如何调查的想法:检查实际查询,即通过print str(some_queryset.query)执行。然后,您可以尝试在manage.py dbshell中执行查询并检查结果。

同样发布您的模型和数据库引擎可能很有用,因为它可能是相关的。

答案 1 :(得分:0)

也许你可以使用count()方法来计算QuerySet中的项目: count()

user_lists_count = List.objects.filter(user=user).select_related('city','city__country').count()

这有用吗?

希望这就是你想要的。

答案 2 :(得分:0)

刚刚意识到这是item_count变量的一个问题。当我使用total_items时,它工作正常。