我正在从头开始开发一个计费和会计应用程序,其中我创建了两个不同的应用程序:
- billing:这个应用程序存储所有与计费相关的逻辑,例如;订阅计划,产品,优惠券和类似的东西。
- 帐户:此应用程序保留会计数据,例如:客户帐户,交易等。
现在我有一个问题,我需要在以下情况下将两者联系起来:
- 客户(In accounts app)订阅的计划(In billing app)
- 客户(In accounts app)购买的产品(In billing app)
- 客户(In accounts app)发票(In billing app)
- 客户(在计费应用)申请/兑换的优惠券(在计费应用)
我试过在这些应用程序的模型中使用外键,但它看起来非常粗糙和糟糕。
我不确定我是否应该把所有的模型放在相同的地方;我希望有一个有见地的人对我的设计进行审查,这样我就可以知道有什么更好的方法来做到这一点。
很好。要避免导入循环,可以使用字符串定义;
模块"foo/models.py"
class Foo(models.Model):
bar = models.ForeignKey('bar.Bar') # no explicit import statement required
模块"酒吧/models.py"
class Bar(models.Model):
foo = models.ForeignKey('foo.Foo')
真正的问题是你的结构是否使事情更直观?如果您不确定为什么需要拆分依赖的代码片段,请不要这样做。
相关话题:django中业务逻辑和数据访问的分离