Уведомления

Группа в Telegram: @pythonsu

#1 Март 16, 2017 16:47:02

idnkunv
Зарегистрирован: 2015-03-05
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

DRF Optimization

Здравствуйте.

Суть вопроса:
Использую стандартный Serializer для модели.
Если просто сделать выборку, не пытаясь достать значения из ForeignKey, то запрос работает достаточно быстро.

По умолчанию для ForeignKey используется PrimaryKeyRelatedField, которое возвращает PKOnlyObject — в котором нет ничего лишнего.

Но мне нужен не PK, а имя. Для этого можно использовать SlugRelatedField где можно привязать поле. Можно явно указать источник создав своё поле. Можно изменить структуру и заменить значение перед формированием запроса. Можно использовать select_related. Но всё это не делает выборку быстрее, к сожалению. Собственно, попытка заменить ID на уникальное имя приводит к пятикратному росту времени отдачи.

Можно ли как-то решить эту проблему стандартными средствами DRF?
Возможно я был где-то невнимателен в документации.

Заранее спасибо за ответ.

Офлайн

#2 Март 30, 2017 12:43:30

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

DRF Optimization

idnkunv
Но мне нужен не PK, а имя.
Нет не нужен.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version