在Django中,可以将两个不同应用程序的模型相互依赖吗?

时间:2015-10-12 07:36:08

标签: django django-models django-apps

我正在从头开始研究计费和会计应用程序,其中我创建了两个不同的应用程序:

  1. 结算:此应用程序存储所有与结算相关的逻辑,例如;订阅计划,产品,优惠券和类似的东西。
  2. 帐户:此应用程序保存会计数据,例如:客户帐户,交易等。
  3. 现在我有一个问题,我需要在以下情况下将它们联系起来:

    1. 客户订阅的计划(在结算应用中)(在帐户应用中)
    2. 客户购买的产品(在结算应用中)(在帐户应用中)
    3. 客户(在帐户应用中)发票(在结算应用中)
    4. 客户应用/兑换的优惠券(在结算应用中)(在结算应用中)
    5. 我尝试在这些应用程序中使用模型中的外键,但它看起来非常粗糙和糟糕。

      我不确定我是否应该将所有模型放在同一个左右;我希望有一位有见识的人对我的设计进行审查,以便我知道这样做的最佳方法是什么。

1 个答案:

答案 0 :(得分:4)

完全没问题。为避免导入循环,您可以使用字符串定义;

模块&f; foo / models.py'

"class="more-link">(mer&hellip;)</a></p>"

模块&#39; bar / models.py&#39;

class Foo(models.Model):
    bar = models.ForeignKey('bar.Bar')  # no explicit import statement required

真正的问题是你的结构让事情更直观吗?如果您不确定为什么需要拆分依赖的代码片段,请不要这样做。

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