I have a serialzer which have get_rates method. I want a way to get the rates for the driver in a better way and fast as well.
def get_rates(self, obj):
reviews = Review.objects.filter(driver=obj)
rate_5 = reviews.filter(customer_rate__gt=4, customer_rate__lte=5).count()
rate_4 = reviews.filter(customer_rate__gt=3, customer_rate__lte=4).count()
rate_3 = reviews.filter(customer_rate__gt=2, customer_rate__lte=3).count()
rate_2 = reviews.filter(customer_rate__gt=1, customer_rate__lte=2).count()
rate_1 = reviews.filter(customer_rate__gt=0, customer_rate__lte=1).count()
return {
'rate_5': rate_5,
'rate_4': rate_4,
'rate_3': rate_3,
'rate_2': rate_2,
'rate_1': rate_1,
}