我还是Django的新手,正在尝试理解和实现“胖模型,瘦视图”模式。对我来说,尽管我目前还看不到该特定模型的用例,但是应该为可重用性而自包含一个模型。
该模型是用于许多云供应商之一的虚拟机。我有一个多态基本模型let data = "<p>first <h1> second <br> third </p>";
data = data.replace(/<\/?[^>]+(>|$)/g, '');
console.log(data);
,它定义了所有字段。我还有一个特定的模型VirtualMachine
,它为VirtualMachineVendor
实现了特定于供应商的控制功能。例如VirtualMachine
或vm_create()
,它们处理模型的创建或删除以及云资源的管理。
该视图主要处理请求,并将其发送到正确的模型方法并为模板准备数据。我想添加使用与云提供商进行通信的一些独立python代码创建域记录的功能。
问题:vm_delete
模型应该调用此域创建方法还是应该被View调用?通常,模型应该在相同或不同应用程序内调用其他模型方法,还是在调用后模型将控件返回到视图?
我也一直在试图通过对这些类型的方法提及服务层来理解这些SO Q&A:
Proper way to consume data from RESTFUL API in django
Separation of business logic and data access in django
相关问题:那么说胖模型是指直接与操纵模型数据相关的方法是否公平?
答案 0 :(得分:1)
这真的很武断。我个人不会将任何调用外部API的代码放入模型本身。除了其他方面,这会使测试复杂化,但是更笼统地说,我将模型方法视为将数据库作为其唯一依赖项。
如果愿意,可以将其放入utils模块中。