count livestocks by type & set in herd model by signals

This commit is contained in:
2025-10-07 12:02:30 +03:30
parent f93e48c495
commit cad4ccbe4b
4 changed files with 49 additions and 1 deletions

View File

@@ -4,8 +4,9 @@ from apps.authentication.api.v1.serializers.serializer import (
ProvinceSerializer,
CitySerializer
)
from rest_framework import serializers
from apps.herd.exception import HerdCapacityException
from apps.herd.models import Herd, Rancher
from rest_framework import serializers
class HerdSerializer(serializers.ModelSerializer):
@@ -14,6 +15,14 @@ class HerdSerializer(serializers.ModelSerializer):
model = Herd
fields = '__all__'
def validate(self, attrs):
""" some validations for herd """
if attrs['heavy_livestock_number'] + attrs['light_livestock_number'] > attrs['capacity']:
raise HerdCapacityException()
return attrs
def to_representation(self, instance):
""" Customize serializer output """
representation = super().to_representation(instance)