Множество к одному в Django определяется полем ForeignKey
По умолчанию он выбирает его лениво, т. Е. Только при доступе к этому полю.
Эквивалент EAGER
равен .select_related('objectB')
. Документы здесь
select_related ()
Возвращает QuerySet, который будет «следовать» отношениям внешнего ключа, выбирая дополнительные данные связанного объекта при выполнении своего запроса , Это повышение производительности, которое приводит к одному более сложному запросу, но означает, что дальнейшее использование отношений внешнего ключа не потребует запросов к базе данных.
Следующие примеры иллюстрируют разницу между обычным поиском и поиском select_related (). Вот стандартный поиск:
# Hits the database.
e = Entry.objects.get(id=5)
# Hits the database again to get the related Blog object.
b = e.blog
А вот поиск select_related:
# Hits the database.
e = Entry.objects.select_related('blog').get(id=5)
# Doesn't hit the database, because e.blog has been prepopulated
# in the previous query.
b = e.blog