Должна ли в Django функция перестановки объектов для определенного представления идти в модель или представление? - PullRequest
1 голос
/ 26 мая 2011

Я прошу общее руководство о том, какие функциональные возможности должны входить в код представления по сравнению с кодом модели.

В частности, у меня есть функция, которая берет список объектов и перетасовывает их в список списков, основываясь на том, изменилось ли поле. Например:

[{a:1,...},{a:1,...},{a:2,...},{a:1,...},{a:1,...}]

будет преобразовано в

[[{a:1,...},{a:1,...}],[{a:2,...}],[{a:1,...},{a:1,...}]]

Цель этого преобразования - подготовить данные для отображения в шаблоне в виде вложенных циклов.

Должен ли я создать модельную функцию, такую ​​как group_objects(queryset), или поместить эту логику в представление? Что еще более важно, что стоит за вашей рекомендацией?

Ответы [ 2 ]

4 голосов
/ 26 мая 2011

Если эта функция предназначена для рендеринга шаблонов, это должен быть пользовательский тег шаблона (или фильтр).

И посмотрите на фильтр regroup , возможно, он может быть использован для вашей задачи.

0 голосов
/ 26 мая 2011

В документации Django определенно указывается, что функциональность на уровне таблицы предпочтительно должна быть реализована в менеджере моделей ( ссылка ). Поэтому я думаю, что если вы хотите следовать стандартам Django, вы бы применили его в менеджере моделей.

...