В чем отличие related_name от prefetch_related?
Я так понял, что при добавлении в модели связанных объектов через ForeignKey
и ManyToManyField
при помощи related_name
можно обращаться из связанных объектов к тем, от которых эта связь была создана.
То есть, если допустим есть модель Book
и модель Author
, ссылка на Author
это ForeignKey
в модели Book
, то тогда при установке у поля ForeignKey
значение related_name='books'
через Author.books
можно будет посмотреть все книги, которые написал автор.
Немного непонятно, а для чего тогда нужен prefetch_related
?
Мне всегда казалось, что именно prefetch_related
выполняет эту задачу (находит все связанные объекты с текущим обратным соотношением), потому что такого функционала как related_name
просто нет, но раз он есть, то для чего тогда prefetch_related
?