from rest_framework import serializers from django.utils.translation import gettext as _ from labs.models import ( ExamVariant, ) class ExamAttemptCreateSerializer(serializers.Serializer): variant_id = serializers.IntegerField(required=True) variant: ExamVariant | None = None def validate_variant_id(self, value): try: self.variant = ExamVariant.objects.select_related("exam").get( id=value, exam__published=True, ) except ExamVariant.DoesNotExist: raise serializers.ValidationError( _("The specified exam variant does not exist.") ) return value