当前位置: 首页 > 知识库问答 >
问题:

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

何博涛
2023-03-14
  1. 计费:这个应用程序存储所有的计费相关逻辑,例如;订阅计划、产品、优惠券和类似内容。
  2. 帐户:此应用程序保存帐户数据,例如:客户帐户、交易等。

现在我有一个问题,我需要在以下情况下把这两个问题联系起来:

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

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

我不确定我是否应该把所有的模型放在一个或多个;我想有一个有见地的人审查我的设计,这样我就可以知道什么是更好的方式这样做。

共有1个答案

孔睿
2023-03-14

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

模块“foo/models.py”

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

模块“bar/models.py”

class Bar(models.Model):
    foo = models.ForeignKey('foo.Foo')
 类似资料:
  • 但是我有两种回购方式 如何创建两个bean,其中一个是用注入的,另一个是用注入的?

  • 问题内容: 在此系统中,我们存储产品,产品图像(产品可能有很多图像)和产品的默认图像。数据库: 如您所见,和,是循环参考。可以吗 问题答案: 不,那不行。表之间的循环引用是混乱的。请参阅这篇(已有十年的历史)文章:SQL By Design:循环参考 一些DBMS可以特别小心地处理这些问题,但是MySQL会遇到问题。 作为您的设计,第一选择是使两个FK之一为可空。这使您能够解决“鸡与蛋”问题(我应

  • 问题内容: 我正在使用Flamingo功能区和Substance Office 2007外观。 当然,现在 每个 控件都具有这种外观,即使对话框上也是如此。 我想要的是Office 2007中的功能,功能区具有Office 2007的外观,但其他控件保留其本机Vista / XP的外观。 是否可以为某些控件分配不同的外观?也许使用某种链接或代理外观? 问题答案: 我刚刚发现:由于物质5.0的SKI

  • 我有一个以.NET标准1.5为目标的项目,它作为几个DLL部署在Nuget上。该项目是从Java移植而来的。在项目的一些类中,有静态的方法,这些方法是从命令行运行的。 null 我想知道的是,有没有一种方法来编译DLL,这样它就可以在没有两个独立的(混乱的)DLL的情况下使用? 基本上,我试图获得与Java中类似的功能,在Java中,包可以被应用程序引用或在命令行上运行(并在命令行上指定入口目标)

  • 我知道循环依赖通常是不被鼓励的——然而,在C#和TypeScript中,我有时发现它们很有用。这可能是因为我缺乏python方面的经验,也可能是因为我的思维方式不对,或者是因为我没有找到谷歌应该使用的词语。我将如何解决以下问题? 我试图创建一个处理请求的类,每个处理事件都伴随着一个上下文。所以,我想创建handler类和context类,但它们是依赖的,linter在第2行给了我问题,说Handl