我来自于Java背景,所以我通常会做以下事情:
- 将这些类定义为Java Bean(即只有getter和setter方法,没有附加逻辑)
- 创建AccountManager EJB类,定义create_account方法(需要一个账户和用户列表作为参数)
- 在Web层中准备数据,然后将数据传递给AccountManager EJB,例如:
accountManager.createAccount(account, userList)
但是在Django中,框架提倡将领域逻辑放入模型类(行级别)或相关的管理器类(表级别),这使得事情变得有点尴尬。如果您的逻辑仅涉及一个表格,则可以采用这种方式,但在实际应用中,通常每个步骤都涉及多个不同的表格,甚至是数据库,那么在这种情况下该怎么办?
把逻辑放到视图中吗?我认为这根本不是好的做法。或者通过使用**kwargs在模型类中覆盖save方法,传递额外的数据?但是后端将会出错。
我希望这说明了我在Django应用程序中应该将业务逻辑放置在何处的困惑。