Django has the great new annotate() function for querysets. However I can\'t get it to work properly for multiple annotations in a single queryset.
For example,
I can't guarantee that this will solve your problem, but try appending .order_by()
to your call. That is:
tour_list = Tour.objects.all().annotate(Count('tourcomment')).annotate(Count('history')).order_by()
The reason for this is that django needs to select all the fields in the ORDER BY clause, which causes otherwise identical results to be selected. By appending .order_by()
, you're removing the ORDER BY clause altogether, which prevents this from happening. See the aggregation documentation for more information on this issue.