I have a QuerySet with Books and I would like to add a score
field to every Book result.
qs = Book.objects.all()
In raw SQL I woul
If votes possible values are only 1 and -1 you can just sum them using mentioned annotate: Book.objects.annotate(score=Sum('votes__value'))
.
If there is more possible values you can filter annotation by adding .filter(votes__value__range=(1,1))
to the above query.
If it's more complex you would have to use extra
with select
.