tickets.py 664 B

1234567891011121314151617181920
  1. from rest_framework import serializers
  2. from tickets.models import Ticket
  3. class TicketSerializer(serializers.ModelSerializer):
  4. available_statuses = serializers.SerializerMethodField()
  5. def get_available_statuses(self, obj):
  6. return obj.get_available_statuses()
  7. def validate_status(self, status):
  8. valid_statuses = self.get_available_statuses(self.instance)
  9. if not valid_statuses or status not in valid_statuses:
  10. raise serializers.ValidationError("Invalid value for the status field")
  11. return status
  12. class Meta():
  13. model = Ticket
  14. fields = "__all__"
  15. ref_name = "TicketSerializer_v2"