2015-10-12 28 views
2

我的工作从无到有,我已经创建了两个不同的应用程序作为结算和会计应用:在Django中,有两个不同的应用程序的模型可以相互依赖吗?

  1. 计费:这个应用商店的所有例如计费相关的逻辑;订阅计划,产品,优惠券和类似的东西。
  2. 账:这个应用程序可以使例如会计数据:客户的帐户,交易等

现在我有一个问题,我需要在下列情况下,有关他们两人的:

  1. 计划(在结算应用程序)由客户申请(在账户APP)客户购买
  2. 产品(在计费应用程序)(在账户APP)
  3. 客户(应收应用程序)发票(在计费应用程序)
  4. 优惠券(在计费应用程序)应用/由客户(在计费应用程序)赎回

我一直在使用这些应用程序之间的车型外键尝试,但它只是看起来非常粗糙和坏。

我不确定我应该把所有的模型放在同一个左右;我想通过有见地的人对我的设计进行审查,以便我可以知道做到这一点的更好方法。

回答

3

这很好。为了避免导入循环,你可以使用字符串定义;

模块 '富/ 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') 

真正的问题是贵结构使事情更直观?如果您不确定为什么需要拆分依赖的代码段,请不要。

相关话题: Separation of business logic and data access in django

相关问题