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

akm*_*akm 5 django django-models django-apps

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

  1. 计费:这个应用程序存储了所有与计费相关的逻辑,例如;订阅计划、产品、优惠券和类似的东西。
  2. 帐户:此应用程序保留会计数据,例如:客户帐户、交易等。

现在我有一个问题,我需要在以下情况下将它们联系起来:

  1. 客户订阅的计划(在计费应用程序中)(在帐户应用程序中)
  2. 客户购买的产品(在计费应用程序中)(在帐户应用程序中)
  3. 客户(在帐户应用程序中)发票(在计费应用程序中)
  4. 客户应用/兑换的优惠券(在计费应用程序中)(在计费应用程序中)

我曾尝试在这些应用程序的模型中使用外键,但它看起来非常粗糙和糟糕。

我不确定我是否应该将所有模型放在相同的位置;我希望有见地的人对我的设计进行审查,以便我知道有哪些更好的方法可以做到这一点。

Hed*_*ide 5

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

模块'foo/models.py'

class Foo(models.Model):
    bar = models.ForeignKey('bar.Bar')  # no explicit import statement required
Run Code Online (Sandbox Code Playgroud)

模块'bar/models.py'

class Bar(models.Model):
    foo = models.ForeignKey('foo.Foo')
Run Code Online (Sandbox Code Playgroud)

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

相关主题: django中业务逻辑和数据访问的分离