diff options
Diffstat (limited to 'pedidos-ya/app/opinion/serializers.py')
-rw-r--r-- | pedidos-ya/app/opinion/serializers.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/pedidos-ya/app/opinion/serializers.py b/pedidos-ya/app/opinion/serializers.py new file mode 100644 index 0000000..3aafdc7 --- /dev/null +++ b/pedidos-ya/app/opinion/serializers.py @@ -0,0 +1,22 @@ +from rest_framework import serializers + +from opinion.models import Opinion + + +class OpinionSerializer(serializers.ModelSerializer): + """Serializer for the opinion objects""" + store_avg = serializers.SerializerMethodField() + + def get_store_avg(self, obj): + opinions = Opinion.objects.filter(store_id=obj.store_id) + score_sum = 0 + + for item in opinions: + score_sum += item.score + return (score_sum / len(opinions)) + + class Meta: + model = Opinion + fields = ('id', 'user_id', 'store_id', 'purchase_id', 'comment', + 'score', 'created_at', 'updated_at', 'store_avg') + read_only_fields = ('id', 'created_at', 'updated_at', 'store_avg') |