You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

44 lines
1.2 KiB

from rest_framework import serializers
from rest_framework.serializers import ModelSerializer
from .models import Review
class ReviewSerializer(ModelSerializer):
target_user = serializers.SerializerMethodField(read_only=True)
order = serializers.SerializerMethodField(read_only=True)
count_reviews = serializers.SerializerMethodField(read_only=True)
class Meta:
model = Review
fields = (
'id',
'text',
'type',
'created',
'count_reviews',
'project',
'from_customer',
'from_contractor',
'from_team',
'target_customer',
'target_contractor',
'target_team',
'target_user',
'order',
)
def get_order(self, obj):
return obj.project.order.pk
def get_count_reviews(self, obj):
return Review.objects.filter(project=obj.project).count()
def get_target_user(self, obj):
if obj.target_customer:
return obj.target_customer.pk
elif obj.target_contractor:
return obj.target_contractor.pk
elif obj.target_team:
return obj.target_team.owner.pk