Как отфильтровать набор запросов на основе значения поля MethodSerializerField?

У меня есть сериализаторы с полем SerializerMethodField

class EmployeeSerializer(serializers.Serializer):
    id = serializers.IntegerField()
    name = serializers.CharField()
    group_ids = serializers.SerializerMethodField()

    def get_group_ids(self):
           /* this method returns array of 
              group_ids employee can me member of */

есть вид:

  class EmployeeViewSet(GenericViewSet):
      serializer_class = EmployeeSerializer

      def get_queryset(self):
           return Employee.objects.all()

Если я хочу получить список всех сотрудников, я вызываю этот url и получаю следующий результат:

http://localhost:8080/employees/

[
  {
    "id": 1,
    "name": "Ann",
    "group_ids": [
           90,
           100
    ]
  },
  {
    "id": 2,
    "name": "Tom",
    "group_ids": [
           90,
           102
    ]
  }
]

Я хочу отфильтровать результат по group_id. Чтобы получилось что-то вроде этого:

  http://localhost:8080/employees/?group_id=102

и в результате я получу только:

  [
    {
    "id": 2,
    "name": "Tom",
    "group_ids": [
           90,
           102
    ]
   }
  ]

Есть ли возможность фильтровать набор запросов на основе вычисляемого значения, например, значения поля SerializerMethodField? Заранее спасибо

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