Что такое select_related() в Django

Python Senior Без компании
Что такое select_related() в Django
Ответы
`select_related()` — это метод QuerySet в Django, который оптимизирует запросы к базе данных, выполняя SQL JOIN для связанных объектов (ForeignKey, OneToOne). Это уменьшает количество запросов при обращении к связанным полям. **Пример без `select_related()`:** ``` books = Book.objects.all() for book in books: print(book.author.name) # Отдельный запрос для каждого автора ``` **Пример с `select_related()`:** ``` books = Book.objects.select_related('author').all() for book in books: print(book.author.name) # Автор уже загружен в одном запросе ``` **Особенности:** - Работает только с "один-ко-многим" и "один-к-одному" - Увеличивает размер результата, так как JOIN добавляет данные - Не работает с ManyToMany (для этого есть `prefetch_related`)