胖模型瘦身观点:我应该在哪里放置相关代码

时间:2019-03-29 13:56:58

标签: django django-models django-views

我还是Django的新手,正在尝试理解和实现“胖模型,瘦视图”模式。对我来说,尽管我目前还看不到该特定模型的用例,但是应该为可重用性而自包含一个模型。

该模型是用于许多云供应商之一的虚拟机。我有一个多态基本模型let data = "<p>first <h1> second <br> third </p>"; data = data.replace(/<\/?[^>]+(>|$)/g, ''); console.log(data);,它定义了所有字段。我还有一个特定的模型VirtualMachine,它为VirtualMachineVendor实现了特定于供应商的控制功能。例如VirtualMachinevm_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

相关问题:那么说胖模型是指直接与操纵模型数据相关的方法是否公平?

1 个答案:

答案 0 :(得分:1)

这真的很武断。我个人不会将任何调用外部API的代码放入模型本身。除了其他方面,这会使测试复杂化,但是更笼统地说,我将模型方法视为将数据库作为其唯一依赖项。

如果愿意,可以将其放入utils模块中。

相关问题