Ответ 1
Ваш models.py
может быть (а иногда и пустым). Вы не обязаны иметь модель, которая сопоставляется с базой данных.
У вас должен быть файл models.py
, чтобы сделать Django admin счастливым. Имя файла models.py
важно, и проще иметь пустой файл, чем пытаться изменить файл, ожидаемый различными командами администратора.
"Модель" - в общем случае - не нужно отображать базу данных. "Модель" - как общая составляющая дизайна MVC - может быть чем угодно.
Вы можете - и часто - определять свой собственный "модельный" модуль, который использует ваши взгляды. Просто не называйте это models.py
, потому что это путает администратора Django. Назовите это чем-то значимым для вашего приложения: foo.py
. Этот foo.py
управляет реальными вещами, которые лежат в основе вашего приложения, - не обязательно подкласс Django Model.model
.
Django MVC не требует сопоставления базы данных. Он явно ожидает, что модуль с именем models.py
имеет в нем сопоставление базы данных. Итак, используйте пустой models.py
, если у вас нет фактического сопоставления базы данных.
Ваш views.py
может использовать
import foo
def index( request ):
objects = foo.somelistofobjects()
*etc.*
Django позволяет легко работать без сопоставления базы данных. Ваша модель может легко быть чем угодно. Просто не называйте это models.py
.
Edit.
Представлены ли виды в моделях? Нет.
При обновлении модели контроллером представления получат уведомление? Нет.
Является ли модель строго репрезентацией данных, поскольку это действительно MVP? Да.
Прочитайте документы Django. Это просто.
Веб-запрос → Отображение URL → Функция просмотра → Шаблон → Ответ.
Модель может использоваться функцией просмотра. Модель может быть отображением базы данных, или это может быть любая другая вещь.