使用两个数据库的单个Django应用程序

时间:2013-05-15 19:08:50

标签: django django-models

如何在Django中配置托管在两个不同数据库中的模型?

到目前为止,我在我的Django环境中设置了3个数据库。我的一个应用程序使用Router自动将数据发送到正确的数据库 - 这很容易完成,因为此应用程序只处理该数据库。

但是,我有另一个使用两个不同数据库的应用程序。该应用程序“控制”其中一个,但从第二个获取数据,完全通过另一个应用程序更新。

我尝试在模型的Meta类中添加任意属性,以便在路由器中进行匹配,但Django中不允许这样做(正如我发现的那样)。

我可以提供哪些数据可以在路由器中匹配,以了解要转到哪个数据库?

1 个答案:

答案 0 :(得分:1)

如果您知道在定义模型类时要使用哪个DB,则可以向类本身而不是Meta类添加任意属性。在路由器中,您可以使用hasattr查看属性是否存在(因为它不适用于内置模型),或者只是尝试/ except并捕获异常。