Я все еще новичок в Django и пытаюсь понять и реализовать шаблон "толстая модель, тощий взгляд". Для меня имеет смысл, что модель должна быть автономной для повторного использования, хотя в настоящее время я не вижу варианта использования этой конкретной модели.
Модель представляет собой виртуальную машину для одного из множества поставщиков облачных решений. У меня есть полиморфная базовая модель, VirtualMachine
, которая определяет все поля. У меня также есть конкретная модель VirtualMachineVendor
, которая реализует функцию управления, специфичную для поставщика VirtualMachine
. Примерами могут быть vm_create()
или vm_delete
, которые обрабатывают создание или удаление модели, а также управление облачным ресурсом.
Представление в основном обрабатывает запрос и отправляет его в правильный метод модели и подготавливает данные для шаблона. Я хочу добавить функциональность для создания записи домена, используя некоторый независимый код Python, который взаимодействует с провайдером облака.
Вопрос: должна ли модель VirtualMachine
вызывать этот метод создания домена или это должен вызывать View? В общем, должна ли модель вызывать другие методы модели в том же или другом приложении, или модель должна возвращать элемент управления обратно в представление после вызова?
Я также пытался разобраться в этих вопросах и ответах, упоминая сервисный уровень для следующих типов методов:
Правильный способ использования данных из RESTFUL API в django
Разделение бизнес-логики и доступа к данным в django
Смежный вопрос: справедливо ли тогда говорить, что толстые модели относятся к методам, связанным непосредственно с манипулированием данными модели?