【发布时间】:2011-08-02 17:59:01
【问题描述】:
例如,Account 1--> *User --> 1 Authentication 1 个帐户有多个用户,每个用户将有 1 个身份验证
我来自java背景所以我通常做的是
- 将这些类定义为 java bean(即,只是 getter 和 setter,没有附加逻辑)
- 创建 AccountManager ejb 类,定义 create_account 方法(需要 1 个帐户,用户列表)
- 在web层准备数据,然后将数据传入AccountManager ejb,例如:
accountManager.createAccount(account, userList)
但在 django 中,框架提倡将域逻辑放入模型类(行级)或关联的管理器类(表级)中,这让事情有些尴尬。是的,如果你的逻辑只涉及一张表是可以的,但是在实际应用中,通常每一步都会涉及到多个不同的表甚至数据库,那么这种情况我该怎么办呢?
把逻辑放到View里?我认为这根本不是一个好习惯。甚至覆盖模型类中的保存方法,使用 **kwargs 传入额外的数据?那么后端就会崩溃。
我希望这能说明我对业务逻辑应该放在 django 应用程序中的什么位置的困惑。
【问题讨论】:
标签: django django-models transactions django-admin business-logic