Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 1, 2013 02:02:29

od-5
Зарегистрирован: 2013-08-01
Сообщения: 17
Репутация: +  1  -
Профиль   Отправить e-mail  

"Структура" сайта на Django

Прелюдия: после 4 с половиной лет системного администрирования подсел на WEB: html, css, python+Django.
А теперь суть вопроса:
необходимо сделать несложный сайт, и тут же столкнулся с дилемой по части организации вывода главного меню.
Вариант первый: создать модель(имя_пункта_меню, slug(атозаполнение транслитерированным именем_пункта)), пункты меню добавлять уже через админку, создать контекстный процессор для вывода меню в шаблоне циклом.
Плюсом вижу - универсальность, т.е. создать отдельное приложение под это дело (либо использовать готовое решение вроде django-menu). Минусом вижу: “дублирование” названий, например - пункт меню называется “Новости”, категория статей, логично предположить тоже - “Новости”…
Вариант второй (который более нравится лично мне): главное меню “зашить” внутрь шаблона. Обоснование: главное меню продумывается один раз на стадии проектирования и, в дальнейшем, практически не подлежит реорганизации(ибо добавление, удаление пунктов может нарушить изначальную концепцию дизайна, а ещё хуже - поплывёт вёрстка). Нет необходимости использовать сторонние модули для транслитерации slug. Нет необходимости добавлять в модель промежуточные “настроечные” поля для привязки статей, категорий, галерей к пунктам меню.
Делать “комбайн” на подобии Joomla под один конкретный сайт смысла не вижу - опять же, облегчает работу контент менеджерам, которых не будут пугать множество “настроечных” полей. Универсальность вещь конечно хорошая, но, так же как и с “красотой” кода - перебарщивать не надо.

Надеюсь не сильно запутано изложил. Прошу гуру наставить на путь истинный - как всё таки принято делать? Должны же быть какие нибудь “проверенные временем” подходы к построению сайтов, а то на просторах интернета встречаю только примеры реализаций какой либо технической стороны вопроса (как выводить меню через цикл, создание контекстных процессоров и т.д.)

Отредактировано Александр Кошелев (Авг. 3, 2013 20:51:11)

Офлайн

#2 Авг. 3, 2013 19:07:46

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

"Структура" сайта на Django

od-5
а чем плохо сделать шаблонный тег ?

Офлайн

#3 Авг. 4, 2013 02:23:36

od-5
Зарегистрирован: 2013-08-01
Сообщения: 17
Репутация: +  1  -
Профиль   Отправить e-mail  

"Структура" сайта на Django

Да подразобрался уже вроде.
В общих чертах:
- меню представляет собой класс для хранения категорий(название, автоматически заполняющийся транслитерированный slug, родитель, уровень вложенности);
- есть класс, хранящий инфу о “компании\владельце” (телефон, адрес, e-mail, время работы, пункт меню(отношение один к одному на категорию));
- есть класс хранящий материалы (заголовок, дата публикации, текст(поле tinymce), пункт меню(отношение многие к одному на категорию));
- класс для хранения галереи изображений, картинки для слайдера на главной (изображение, описание, пункт меню(отношение многие к одному на категорию)).

Правильно мыслю?

Отредактировано od-5 (Авг. 4, 2013 03:21:09)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version