summaryrefslogtreecommitdiff
path: root/pedidos-ya/app/opinion/serializers.py
blob: 3aafdc7c594cb788de2efddcb8a34ef8ebbbe7ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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')