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.
36 lines
937 B
36 lines
937 B
from rest_framework.serializers import ModelSerializer
|
|
from rest_framework import serializers
|
|
|
|
from .models import Review
|
|
from users.serializers import UserSerializer, TeamSerializer
|
|
|
|
|
|
class ReviewSerializer(ModelSerializer):
|
|
target_user = serializers.SerializerMethodField(read_only=True)
|
|
|
|
class Meta:
|
|
model = Review
|
|
|
|
fields = (
|
|
'id',
|
|
'text',
|
|
'type',
|
|
'created',
|
|
'project',
|
|
'from_customer',
|
|
'from_contractor',
|
|
'from_team',
|
|
'target_customer',
|
|
'target_contractor',
|
|
'target_team',
|
|
'target_user',
|
|
)
|
|
|
|
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
|
|
|
|
|