Files
RasadDam_Backend/apps/herd/web/api/v1/serializers.py

49 lines
1.5 KiB
Python

from apps.authentication.api.v1.serializers.serializer import (
UserSerializer,
OrganizationSerializer,
ProvinceSerializer,
CitySerializer
)
from rest_framework import serializers
from apps.herd.models import Herd, Rancher
class HerdSerializer(serializers.ModelSerializer):
""" Herd Serializer """
class Meta:
model = Herd
fields = '__all__'
def to_representation(self, instance):
""" Customize serializer output """
representation = super().to_representation(instance)
if isinstance(instance, Herd):
representation['owner'] = UserSerializer(instance.owner).data
representation['cooperative'] = OrganizationSerializer(instance.cooperative).data
representation['province'] = ProvinceSerializer(instance.province).data
representation['city'] = CitySerializer(instance.city).data
representation['contractor'] = OrganizationSerializer(instance.contractor).data
return representation
class RancherSerializer(serializers.ModelSerializer):
class Meta:
model = Rancher
fields = '__all__'
def to_representation(self, instance):
representation = super().to_representation(instance)
representation['province'] = {
'id': instance.province.id,
'name': instance.province.name
}
representation['city'] = {
'id': instance.city.id,
'name': instance.city.name
}
return representation