Существует ли канонический шаблон проектирования для фильтра в памяти в Django или Django Rest Framework?
Например, есть ли в Django способ фильтрации набора запросов с использованием лямбда-выражения ?
Или Django Rest Framework имеет метод Viewset
, который можно переопределить для фильтрации результатов запроса? Ни get_queryset
, ни filter_queryset
не подходят для этого, потому что они оба возвращают набор запросов. Напротив, фильтр в памяти будет принимать список результатов запроса в качестве входных данных и возвращать отфильтрованное подмножество входного списка. Возможно, метод Viewset list()
может быть переопределен для этой цели, но он не идеален, потому что тогда реализация по умолчанию ListModelMixin
должна быть продублирована. Кроме того, фильтрация в методе сериализатора get_representation
или свойстве data
также не кажется идеальной, поскольку это будет означать выполнение работы по сериализации результатов, которые затем отбрасываются.