Исключение AttributeError: Сериализатор не имеет запроса атрибута в DRF

Я написал следующий код в сериализаторе, где я проверяю данные:

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

    def validate(self, data):
        role = data["role"]
        roles = models.Role.objects.filter(
       -->(exception) organization=self.request.user.organization
        )
        if role not in roles:
            raise serializers.ValidationError("Invlid role selected")
        return data  

Но я получаю следующее исключение:

Объект 'MySerializer' не имеет атрибута 'request'. И это происходит в упомянутой строке. Я хочу получить доступ к текущему пользователю в функции validate. Как я могу это сделать?

Если запрос предоставляется в контексте, что делает, например, ModelViewSet, вы можете получить доступ к нему с помощью:

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

    def validate(self, data):
        role = data['role']
        request = self.context['request']
        roles = models.Role.objects.filter(
            organization__user=request.user
        ).distinct()
        if role not in roles:
            raise serializers.ValidationError('Invalid role selected')
        return data
Вернуться на верх