我需要在 Django 项目中连接两个应用程序,但不想将模型从一个导入另一个。保持它们“干净”将使我以后可以单独重复使用它们。
在这种特殊情况下,我需要在这些单独的应用程序中的两个模型之间建立多对多关系。一种解决方案是在主项目应用程序中创建一个模型,为两者定义外键。这是 Django 的方式还是有更好的解决方案?
我需要在 Django 项目中连接两个应用程序,但不想将模型从一个导入另一个。保持它们“干净”将使我以后可以单独重复使用它们。
在这种特殊情况下,我需要在这些单独的应用程序中的两个模型之间建立多对多关系。一种解决方案是在主项目应用程序中创建一个模型,为两者定义外键。这是 Django 的方式还是有更好的解决方案?
也许您正在寻找一种Mediator Pattern。如果您的应用程序不需要相互了解,一种方法可以是编写另一个可以同时了解两者的应用程序。
django-profiles、django-sorl、django- 都作为“多对一”类型的关系工作。当您选择使用这些插件/应用程序(和其他)时,您最终将使您设计的应用程序依赖于它们的存在。
选项 1:考虑到上述情况...使您打算设计的应用程序之一足够通用,以使依赖关系只有一种方式(因此,其他应用程序将依赖它,但不是相反)。这是大多数 django 应用程序已经做的。
选项 2:如果您的每个应用程序彼此共享依赖关系,那么您可能会让您的生活变得轻松很多,只需将其保留为同一个应用程序/插件的一部分。