Предполагая, что author
не имеет related_name
, установленного для каждой модели:
from django.db.models import F, Sum
users = (
User.objects.annotate(up_votes_1=Sum("model1_set__up_vote"))
.annotate(up_votes_2=Sum("model2_set__up_vote"))
.annotate(up_votes_3=Sum("model3_set__up_vote"))
.annotate(total=F("up_votes_1") + F("up_votes_2") + F("up_votes_3"))
)
Теперь вы можете перебирать пользователей и получать итоговые значения для каждой.