TGViewer
Django Python Django Python @django_pythonl · 6.62K subscribers
Post #360 1.97K
🕸️ Django Tip — ускоряй сложные запросы с помощью `only()` + `defer()`

В Django ORM часто делают Model.objects.all(), вытаскивая все поля модели. Но если таблица тяжёлая, это съедает кучу памяти и тормозит.

💡 Лайфхак: загружай только нужные поля:


# Вместо этого
users = User.objects.all()

# Сделай так
users = User.objects.only("id", "username")
А если нужно отложить подгрузку дорогих полей (например, JSON или TextField):




users = User.objects.defer("profile_data", "settings_blob")

🟢 Что это даёт

⚡ Сильно ускоряет SQL-запросы (SELECT только нужные столбцы).
📉 Экономит память, так как Django не держит ненужные данные.
🔄 Поля можно подгрузить позже — при первом обращении Django сделает отдельный запрос.

💡 Совет: комбинируй only() и defer() для тонкого контроля — так можно оптимизировать даже очень «тяжёлые» модели без переписывания логики.
More from @django_pythonl
  1. Sep 13, 2026🔥 Django Q() objects — один из самых полезных инструментов ORM, который многие используют…
  2. Sep 11, 2026🔥 Хак в Django: Meta.indexes можно использовать для собственных миграций Оказывается, mod…
  3. Aug 31, 2026Нечёткий поиск в Django + PostgreSQL можно сделать намного умнее обычного icontains. В Cak…
  4. Aug 14, 2026🐍 Django-разработчикам: `DEBUG=True` в проде опаснее, чем кажется. Это не просто красивые…
  5. Aug 8, 2026🚀 Django 6.1 вышел: меньше магии, больше контроля Новая версия Django приносит улучшения…
  6. Jul 22, 2026⚡️ django-orjson ускоряет работу Django с JSON Adam Johnson выпустил библиотеку django-orj…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →