Итак вы закончили ваш прототип на django rest framework и он уже начал тормозить. Ну конечно, вложенный сериализатор в сериализатор в сериализатор, ещё эти каунты и аггрегация в serializermethodfield. Нормально это шевелиться только если кешировать весь ответ. Но там же 10 фильтров и 3 вида сортировки! Вот бы можно было искать по такому кэшу… Стоп! Где-то я такое видел.

Generic views в drf имеют serializer_class и queryset. Завернув один в другой мы получим json который можно засунуть в коллекцию монги и искать по ней. Осталось сделать небольшой бэк с монгой, я, к примеру, взял aiohttp и aiomongo. Ну и написал management — команду, которая генерит такой код, преобразует filterset в webargs, и выдергивает из подходящих вьюшек данные загружая из в монгу.

Это такой proof of concept, но может кому-то покажется интересным.

github.com/pawnhearts/unrest_framework

Надо добавить unrest_framework в INSTALLED_APPS и появятся management — комманды export_to_mongo и generate_aiohttp

Комментарии (0)