Итак вы закончили ваш прототип на django rest framework и он уже начал тормозить. Ну конечно, вложенный сериализатор в сериализатор в сериализатор, ещё эти каунты и аггрегация в serializermethodfield. Нормально это шевелится только если кешировать весь ответ. Но там же 10 фильтров и 3 вида сортировки! Вот бы можно было искать по такому кэшу… Стоп! Где-то я такое видел.
Generic views в drf имеют serializer_class и queryset. Завернув один в другой мы получим json который можно засунуть в коллекцию монги и искать по ней. Осталось сделать небольшой бэк с монгой, я, к примеру, взял aiohttp и aiomongo. Ну и написал management — команду, которая генерит такой код, преобразует filterset в webargs, и выдергивает из подходящих вьюшек данные загружая из в монгу.
Это такой proof of concept, но может кому-то покажется интересным.
http://github.com/pawnhearts/unrest_framework
Надо добавить unrest_framework в INSTALLED_APPS и появятся management — комманды export_to_mongo и generate_aiohttp