Здравствуйте! Недавно начал изучать django и столкнулся с очень странной штукой при использовании пагинации (это после десятка лет работы с PHP).
В документации есть пример:
contact_list = Contact.objects.all() # Получить ВСЕ(!!!) записи???
paginator = Paginator(contact_list, 25) # Разделить список на чанки/страницы
С точки зрения алгоритма - это полный бред. Может я не знаю механизма какого-то в этой конструкции. Но выбирать все записи из БД для того, что бы их поделить - это сумасшествие. А если этих записей 10 млн? Или использование такой конструкции создает запрос с `COUNT` под капотом? После PHP - это казалось идеальным фреймворком. А тут такое разочарование. Как же он все-таки работает?