Фильтрация Django Rest Framework по полям методов сериализатора

В моих сериализаторах я добавил пользовательское поле "step_type", которое получает значение из другой модели.

class AccountSerializer(serializers.ModelSerializer):
    step_type= serializers.SerializerMethodField()

    class Meta:
        model = Account
        fields = '__all__'


    def get_step_type(self, obj):
        step = Step.objects.get(step_name=obj.step_name)
        return step.step_type

Я хочу использовать параметры запроса для фильтрации моего REST API

class AccountViewSet(viewsets.ModelViewSet):
    def get_queryset(self):
        queryset = Account.objects.all().order_by('-date')

        query_step_type = self.request.query_params.get("type")
        if query_step_type is not None:
            queryset = queryset.filter(step_type=query_step_type)
        
        return queryset

Однако это не сработает, поскольку step_type не является частью исходных полей модели. Как я могу отфильтровать набор запросов, используя поле метода сериализатора step type?

Вернуться на верх