from rest_framework import serializers from tickets.models import Ticket class TicketSerializer(serializers.ModelSerializer): available_statuses = serializers.SerializerMethodField() def get_available_statuses(self, obj): return obj.get_available_statuses() def validate_status(self, status): valid_statuses = self.get_available_statuses(self.instance) if not valid_statuses or status not in valid_statuses: raise serializers.ValidationError("Invalid value for the status field") return status class Meta(): model = Ticket fields = "__all__" ref_name = "TicketSerializer_v2"