Смысл фреймворка MVC состоит в том, чтобы отделить дизайн (шаблоны) от логики (контроллеры). Однако языки шаблонов часто допускают ограниченную степень «логики проектирования». Это включает базовые операторы if, циклы, фильтрацию и т. Д.
Я создал шаблонный тег Django, который может взять любой список или QuerySet и «разбить» его. Он разбивает список на страницы на основе указанного размера страницы, а затем добавляет страницы в контекст. Использование выглядит следующим образом:
{% pagify articles by 20 as pages %}
Затем я могу вызвать отдельное включение, чтобы перебрать страницы и создать хороший список страниц, где бы я ни нуждался.
Это казалось оптимальным способом сделать это, потому что он позволял мне публиковать любой список в контексте; Мне не нужно было полагаться на контроллер, чтобы вернуть постраничные результаты. Но коллега утверждал, что это казалось слишком большой логикой для шаблона. Я думал, что это все еще входит в сферу логики, основанной на дизайне, поскольку страница все равно будет функционировать даже без подкачки страниц, а определение размера страницы похоже на ответственность шаблона.
Мой вопрос, это слишком много логики для шаблона? или это чистый способ справиться с этим?