from rest_framework import serializers from core.apps.wherehouse.models.inventory import Inventory class InventoryListSerializer(serializers.ModelSerializer): product = serializers.SerializerMethodField(method_name='get_product') unity = serializers.SerializerMethodField(method_name='get_unity') wherehouse = serializers.SerializerMethodField(method_name='get_wherehouse') project_folder = serializers.SerializerMethodField(method_name='get_project_folder') project = serializers.SerializerMethodField(method_name='get_project') class Meta: model = Inventory fields = [ 'id', 'wherehouse', 'project_folder', 'project', 'quantity', 'product', 'price', 'unity', 'unit_price', 'created_at', ] def get_project(self, obj): return { 'id': obj.project.id, 'name': obj.project.name, } if obj.project else None def get_project_folder(self, obj): return { 'id': obj.project_folder.id, 'name': obj.project_folder.name, } if obj.project_folder else None def get_wherehouse(self, obj): return { "id": obj.wherehouse.id, "name": obj.wherehouse.name } def get_product(self, obj): return { 'id': obj.product.id, 'name': obj.product.name, 'type': obj.product.type } def get_unity(self, obj): return { 'id': obj.unity.id, 'value': obj.unity.value, }