to_inventory/back/inventory/serializers.py

45 lines
1.3 KiB
Python

from rest_framework import serializers
from .models import Element, InventoryItem, Partner
import logging
logger = logging.getLogger("root")
class PartnerSerializer(serializers.ModelSerializer):
total_inventory = serializers.SerializerMethodField()
class Meta:
model = Partner
fields = ["id", "external_id", "name", "total_inventory"]
def get_total_inventory(self, instance):
return InventoryItem.objects.filter(partner=instance).count()
class InventorySerializer(serializers.ModelSerializer):
partner_name = serializers.CharField(source="partner.name", read_only=True)
total_elements = serializers.SerializerMethodField()
class Meta:
model = InventoryItem
fields = ["id", "partner", "partner_name", "name", "total_elements"]
def get_total_elements(self, instance):
return Element.objects.filter(inventory=instance).count()
class ElementSerializer(serializers.ModelSerializer):
inventory_name = serializers.CharField(source="inventory.name", read_only=True)
class Meta:
model = Element
fields = [
"id",
"external_id",
"element_id",
"photo",
"additional_text",
"inventory",
"inventory_name",
]