Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
应用程序之间的Django关系:如何将应用程序分开?_Django_Database Design_Django Admin - Fatal编程技术网

应用程序之间的Django关系:如何将应用程序分开?

应用程序之间的Django关系:如何将应用程序分开?,django,database-design,django-admin,Django,Database Design,Django Admin,我需要在Django项目中连接两个应用程序,但不想将模型从一个导入到另一个。保持它们“干净”将允许我以后单独重用它们 在这种特殊情况下,我需要在这些单独的应用程序中两个模型之间建立多对多关系。一种解决方案是在主项目应用程序中创建一个模型,定义两者的外键。这是Django的方式还是有更好的解决方案?也许你正在寻找一种解决方案。如果你的应用程序不需要相互了解,一种方法是编写另一个同时了解这两种情况的应用程序。django profiles、django sorl、django-所有这些都是“多对一”

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


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

也许你正在寻找一种解决方案。如果你的应用程序不需要相互了解,一种方法是编写另一个同时了解这两种情况的应用程序。

django profiles、django sorl、django-所有这些都是“多对一”类型的关系。当你选择在这些插件/应用(以及其他)上使用时,你最终会使你设计的应用依赖于它们的存在

备选案文1: 考虑到上述情况。。。让你打算设计的应用程序中的一个足够通用,以使依赖关系仅为一种方式(因此,其他应用程序将依赖于它,而不是另一种方式)。这是大多数django应用程序已经做到的

备选案文2:
如果你的每个应用程序之间都有一个依赖关系,那么你可能会让你的生活变得更加轻松,只需将其作为同一个应用程序/插件的一部分。

如果一个应用程序需要从另一个应用程序导入模块,那么其中就没有整洁(因为它们是依赖的)。一些相关问题:,是的,当我说我可以在主项目应用程序中放置一个模型时,我就是这么想的。但我想我找到了更好更像Django风格的东西:。通过这种方式,我可以保持基础应用程序没有任何与项目相关的依赖项,因此可以重用,并将它们放在带有代理模型的“派生”应用程序中。当然,我需要在settings/INSTALLED_APPS中将基础应用程序与派生应用程序交换。谢谢-是的,我不介意弄脏我的项目特定应用程序,只是一般应用程序应该保持干净。我测试了代理机制,它完全符合我的需要,也就是说,我可以通过依赖于其他应用程序的部分扩展我的通用应用程序。这就像是应用程序的继承,而不会弄脏底层数据。