Django MVT设计:我应该拥有模型或视图中的所有代码吗?

时间:2013-08-28 14:39:20

标签: python django

我是新手,所以我会尝试解释一下你能理解我的意思。

我在Django编写一个简单的应用程序来跟踪现金操作,跟踪金额等。

所以我有一个帐户模型(有一个金额字段来跟踪里面有多少钱)和一个操作模型(还有一个金额字段)。

我创建了一个名为Account.add_operation(amount)的模型助手。这是我的问题:

我是否应该在代码中包含在Account.add_operation(金额)中创建新操作,还是应该在视图中执行?

而且,我应该在模型中调用save()方法(例如在Account.add_operation()的末尾,还是必须在视图中调用?)

在模型内部或视图内部使用代码的最佳方法是什么?

感谢您的关注和耐心。

2 个答案:

答案 0 :(得分:0)

也许您可以使用规则“瘦控制器,胖模型”来决定。在django,这将是“瘦弱的观点”。

要保存相关对象,请根据您的情况Operation进行save()方法或使用pre_save信号

希望这有帮助

答案 1 :(得分:0)

经验丰富的Django用户似乎总是错误地将代码放入模型中。在某种程度上,这是因为单元测试模型更容易 - 它们通常是独立的,而视图触摸模型和模板。

除此之外,我只想问自己代码是否与模型本身有关,或者它是否与在给定视图中访问和呈现它的方式有关。我并不完全理解你的例子(如果你想要更具体的帮助,我认为你将不得不发布一些代码),但你提到的一切听起来都像是属于模型。也就是说,创建一个新的Operation听起来像是add_operation()所做的事情的固有部分!