from rest_framework import serializers from .models import Nomenclature, Sticker, StickerMovement from datetime import date class NomenclatureSerializer(serializers.ModelSerializer): class Meta: model = Nomenclature fields = '__all__' class StickerSerializer(serializers.ModelSerializer): is_expired = serializers.SerializerMethodField() is_expiring_soon = serializers.SerializerMethodField() nomenclature_name = serializers.CharField(source="nomenclature.name", read_only=True) nomenclature_gtin = serializers.CharField(source="nomenclature.gtin", read_only=True) class Meta: model = Sticker fields = '__all__' def get_is_expired(self, obj): return obj.is_expired() def get_is_expiring_soon(self, obj): return obj.is_expiring_soon() def to_representation(self, instance): """Обновляем статус при каждом запросе""" instance.save() return super().to_representation(instance) class StickerMovementSerializer(serializers.ModelSerializer): class Meta: model = StickerMovement fields = '__all__'