кучу запросов при get list на modelViewSet)
я понял что основной бич - это получение сериализированных FK-полей
есть некоторые поля сериализатора, для создания которых генерируется 10-15 запросов/один parent instance
то есть, если API выводит 20 записей, то при получении этого поля для всех этих записей будет сгенерировано 20 инстансов * 15 запросов; 300 запросов только чтобы получить одно поле (сильно!)
например
(Функция основного сериализатора)
# получение readonly поля транзакции
# его модельным сериализатором
def get_transaction(self, obj):
return TransactionEntrySerializer(obj.entry_transactions.first()).data
entry_transactions - related name FK поля
как ты боролся с этим?
prefetch_related("entry_transactions__<field to related model>") не помогает? я не помню откуда будет доставать first() из кеша или новый запрос сделает
блин, я там не скажу надо знать структуру и логику чтобы понимать
Обсуждают сегодня