应用程序之间的 Django 关系:如何保持应用程序独立



我需要在一个 Django 项目中连接两个应用程序,但不想将模型从一个导入到另一个。保持它们的"干净"将允许我以后单独重用它们。

在这种特殊情况下,我需要在这些单独的应用程序中的两个模型之间建立多对多关系。一种解决方案是在主项目应用程序中创建一个模型,用于定义两者的外键。这是 Django 的方式还是有更好的解决方案?

也许你正在寻找一种调解器模式。如果你的应用不需要相互了解,一种方法是编写另一个可以同时了解两者的应用。

django-profiles、django-sorl、django——都以"多对一"类型的关系工作。当您选择使用这些插件/应用程序(和其他插件/应用程序)时,您最终将使您的设计的应用程序依赖于它们的存在。

选项 1:考虑到以上... 使你打算设计的应用程序之一足够通用,以至于依赖项只有一种方式(因此,其他应用程序将依赖于它,而不是相反)。这是大多数 django 应用程序已经做的事情。

选项 2:如果您的每个应用程序彼此之间共享依赖关系,那么将其保留为同一应用程序/插件的一部分可能会使您的生活变得容易得多。

最新更新