【发布时间】:2019-08-20 11:43:55
【问题描述】:
我还是 Django 新手,正在尝试理解和实现“胖模型,瘦视图”模式。尽管我目前没有看到这个特定模型的用例,但对我来说,模型应该是自包含的以实现可重用性是有道理的。
该模型是众多云供应商之一的虚拟机。我有一个多态基础模型VirtualMachine,它定义了所有字段。我还有一个特定的模型,VirtualMachineVendor,它为VirtualMachine 实现了供应商特定的控制功能。例如处理模型创建或删除以及云资源管理的vm_create() 或vm_delete。
视图主要处理请求并将其发送到正确的模型方法并为模板准备数据。我想添加使用一些与云提供商通信的独立 python 代码创建域记录的功能。
问题:VirtualMachine 模型应该调用这个域创建方法还是应该是 View 调用的东西?一般来说,模型应该在同一个或不同的应用程序中调用其他模型方法,还是应该在调用后将控制权返回给视图?
我也一直在尝试理解这些 SO Q&A,其中提到了这些类型方法的服务层:
Proper way to consume data from RESTFUL API in django
Separation of business logic and data access in django
相关问题:那么说胖模型指的是与模型数据操作直接相关的方法是否公平?
【问题讨论】:
-
我不确定您所说的“域记录”是什么意思。你的意思是你的 VirtualMachine 子类的一个实例,还是与之相关的东西?
-
我添加了更多细节...域记录将由云供应商使用一些独立的代码创建,这些代码本身与模型无关。
标签: django django-models django-views