Фильтрация 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?