add new fields to rancher
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
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):
|
||||
if instance.owner:
|
||||
representation['owner'] = instance.owner.id
|
||||
representation['cooperative'] = OrganizationSerializer(instance.cooperative).data
|
||||
representation['province'] = ProvinceSerializer(instance.province).data
|
||||
representation['city'] = CitySerializer(instance.city).data
|
||||
if instance.contractor:
|
||||
representation['contractor'] = OrganizationSerializer(instance.contractor).data
|
||||
representation['rancher'] = RancherSerializer(instance.rancher).data
|
||||
|
||||
return representation
|
||||
|
||||
|
||||
class RancherSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Rancher
|
||||
fields = '__all__'
|
||||
|
||||
def to_representation(self, instance):
|
||||
""" customize output of serializer """
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user