Вопрос дизайна проекта Django - PullRequest
0 голосов
/ 28 октября 2010

Я только начал работать над проектом django (и одновременно изучаю django), и я столкнулся с некоторыми вопросами о дизайне, на которые я не могу ответить со своими ограниченными знаниями, поэтому я решил задать их здесь. в любом случае вот вопросы: 1) где бы вы разместили необработанные запросы. Можно ли помещать запросы строк в файлы view.py? Мое личное мнение - размещать их только в файлах models.py. 2) где вы можете запросить БД? Вы можете вызывать методы запросов в models.py, views.py, templates? Я думаю, что они должны быть в models.py или views.py, но не в шаблонах. в частности, вызовы типа «MyModel__attribute_set__all» не должны использоваться в шаблонах.

Так как я новичок в django (и python), я не совсем уверен, правильно ли я понял об этом. Я благодарен за любые отзывы.

Ответы [ 2 ]

2 голосов
/ 28 октября 2010

Похоже, вы уже на правильном пути.

Я пытаюсь:

  • Держите мои взгляды тонкими, с точки зрения кода, и мои модели жирными
  • сделайте мои шаблоны еще более тонкими и свободными от поиска в базе данных; если мне нужно сделать что-то, что попадает в БД, что по какой-то причине невозможно сделать в представлении, я делаю это с помощью тега шаблона или фильтра, чтобы его можно было улучшить и / или кэшировать, а также легко найти, и СУХОЙ, как может быть
  • определить и выполнить любой необработанный SQL в моделях, которые его используют
0 голосов
/ 28 октября 2010

где бы вы разместили необработанные запросы. можно ли помещать запросы строк в файлы view.py?

Запросы чаще всего видны в view.py; да там все нормально.

Мое личное мнение - размещать их только в файлах models.py.

Если вы часто используете один и тот же запрос, создайте «менеджера» для модели. Вы будете помещать очень часто используемые запросы там. «Только» там будет затруднять жизнь.

где вы можете запросить БД?

Обычно в views.py; не редкость в models.py.

вы можете вызывать методы запросов в ... шаблонах?

Технически это возможно, но, по логике, очень сильно не рекомендуется.

Я думаю, что они должны быть в models.py или views.py, но не в шаблонах

Согласен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...