2010-06-25 148 views
5

我有两个不同的Django项目是为了并行运行,并做了很多不同的事情。共享两个Django项目之间的数据库表

但是他们需要共用一个数据库表,客户表..

两个项目都包含需要包含映射到客户端模型外键的多个应用程序..

我不知道什么是最好的办法..

回答

4

不幸的是,Django的多数据库支持不支持cross-database relations。你可以在其中一个系统上伪造它(例如,引用表,但是自己处理关键引用),但是你需要非常小心地记录你正在做什么,以确保你在应用程序中保持参照完整性是'伪造'它。

+0

我总是喜欢当有人在问答结束后4年以上出现,并且在没有增加任何对话的情况下降低答案。匿名懦夫的注意事项:如果你按照我的答案中的链接,你会发现这在Django Dev中仍然是真实的,并且他们明确地告诉你。他们甚至在“假”这个词的周围使用恐吓引语。 – 2014-11-11 19:41:17

+3

我没有downvoted你,但我认为这个问题可以理解为试图有一个数据库中的两个不同的项目共享。它不一定与跨数据库关系有关。当别人大肆宣传与原始问题无关的事情时,我就会喜欢它。 – 2015-03-15 02:16:26

5

假设这两个项目都在同一个数据库上工作,只需导入您想要引用的模型。

from first_project.some_app.models import Client, OtherSharedModel 

class SomeModelInSecondProject(models.Model): 
    client = models.ForeignKey(Client) 
0

我没有测试过,但另一种选择,如果你共享相同的数据库,并在同一台服务器有两个项目,是刚刚合并成一个项目,组织在不同的目录他们的应用程序,如果你一定要你可以使用两个不同的设置文件。请看这个问题:How to keep all my django applications in specific folder。这只是一个不同的方法,不需要你引用一个不同的项目(我不确定这是多么可取)。

相关问题