Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Веб-разработка и фреймворки > Как спроектировать сайт на Django?


Автор: Ardling 6.5.2013, 18:34
При создании сайтика на django возник вопрос, где именно размещать бизнес логику.

Базовый пример такой:
Создается новый обект, например команда (team), одновременно с ней должны создаваться права доступа и группа, 
права добавляются группе, создатель становится членом новой группы. Вопрос - где поместить всю эту логику?

В views помещать ее странно, как намекает само название, но с другой стороны не очень понятно как запихнуть 
логику в модель не сломав возможности генерировать по модели форму, позволяющую эту модель заполнять. 
С другой стороны контроллеров (как в MVC) я в django не обнаружил. Как поступить в данной ситуации?

Автор: bilbobagginz 7.5.2013, 06:40
Ardling
Терминология: рекомендую "сходить в библиотеку", и ознакомиться с "матчастью" по джанго.
Существует несколько производных паттерна MVC, если не ошибаюсь, джанго придерживается паттерна MVMV (Model, View, Model's View)
очень грубо говоря, в джанго:
  • модели находятся в файлах models.py
  • виды находятся в шаблонах, т.с. в файлах html
  • контроллеры разделены на маршрутизаторы и бизнес логику:
    • маршрутизация - urls.py
    • логика - views.py, логику рекомендуется тоже разбить:
      • во views.py стоит помещать методы обрабатывающие объект запроса (request)
      • остальной подсобный код стоит расфасовать в соотв. др. файлы, чтобы "не путались под ногами"

для второй части существует несколько подходов, самый простой - использовать приложение admin.
оно дает реально админку данных: пользователей, права, можно генерить репорты, и т.д. и т.п.
оно позволяет добавлять пользователей вручную. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)