26👍
✅
You’re right, it’s wasteful to fetch all that data from the database if all you want to do is get the count. I suggest annotation:
threads = (Thread.objects.annotate(Count('comments', distinct=True))
.annotate(Count('upvotes', distinct=True)))
for thread in threads:
print(thread.comments__count)
print(thread.upvotes__count)
See the annotation documentation for more information.
Source:stackexchange.com