3

我很新手,所以我会尝试以一种你能理解我的意思的方式来解释。

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

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

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

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

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

什么是最好的方法,在模型内或视图内有代码?

感谢您的关注和耐心。

4

2 回答 2

0

有经验的 Django 用户似乎总是倾向于将代码放入模型中。在某种程度上,这是因为对模型进行单元测试要容易得多——它们通常是非常独立的,而视图既涉及模型又涉及模板。

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

于 2013-08-28T17:39:54.420 回答
0

也许你可以使用规则“瘦控制器,胖模型”来决定。好吧,在 django 中,这将是“瘦视图”。

要保存相关对象,在您的情况下,Operation我会在save()方法中执行此操作或使用pre_save信号

希望这可以帮助

于 2013-08-28T14:59:14.173 回答