В Django Doc,
select_related()"следует" за связями внешнего ключа, выбирая дополнительные данные связанного объекта при выполнении своего запроса.
prefetch_related()выполняет отдельный поиск для каждого отношения и выполняет "соединение" в Python.
Что это значит под "объединением в python"? Может кто-нибудь проиллюстрировать примером?
 select_related я понимаю, для связи с внешним ключом используйте select_related; и для отношения M2M используйте prefetch_related. Это правильно?