Пользовательская функция Validate не вызывается внутри функции perform_create в DRF

Вот мой код.

class MyViewSet(ModelViewSet):
    serializer_class = MySerializer
    queryset = MyClass.objects.all()

    def get_serializer_class(self):
        if request.user.is_superuser:
            return self.serializer_class
        else:
            return OtherSerializer

    def perform_create(self, serializer):
        if request.user.is_superuser:
            if serializer.is_valid(): 
                serializer.save(organization=self.request.user.organization) 

        else:
            employee = Employee.objects.get(user=self.request.user)
            serializer.save(employee=employee, organization=self.request.user.organization) 

Это мой сериализатор:

class MySerializer(serializers.ModelSerializer):
    class Meta:
        model = models.MyClass

        def validate(self, data):  
            employee = data.get('employee')
            members = Team.objects.get(id=team.id.members.all())
            if employee not in members:
                raise serializers.ValidationError('Invalid')
            return data  

Проблема в том, что моя пользовательская функция validate не вызывается, когда я вызываю ее внутри perform_create() в моем ViewSet.

В чем может быть проблема?

Функция-член

validate должна быть определена в области видимости класса сериализатора, а не внутри class Meta. Поэтому вам нужно сделать левый отступ для функции validate:

class MySerializer(serializers.ModelSerializer):
    class Meta:
        model = models.MyClass

    def validate(self, data):  
        employee = data.get('employee')
        members = Team.objects.get(id=team.id.members.all())
        if employee not in members:
            raise serializers.ValidationError('Invalid')
        return data  
Вернуться на верх