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

使用两个数据库的单个Django应用程序,django,django-models,Django,Django Models,如何在Django中配置托管在两个不同数据库中的模型 到目前为止,我已经在我伟大的Django环境中建立了3个数据库。我的一个应用程序使用自动将数据发送到正确的数据库——这很容易做到,因为这个应用程序只处理这一个数据库 然而,我有另一个应用程序使用两个不同的数据库。应用程序“控制”其中一个,但从另一个应用程序获取数据,并通过另一个应用程序完全更新 我曾尝试向模型的元类添加任意属性,以在路由器中进行匹配,但Django中不允许这样做(正如我发现的那样) 我可以提供哪些数据来匹配路由器中的模型,以了

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

到目前为止,我已经在我伟大的Django环境中建立了3个数据库。我的一个应用程序使用自动将数据发送到正确的数据库——这很容易做到,因为这个应用程序只处理这一个数据库

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

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


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

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

我还没有测试过这种确切的情况,但是如果您知道在定义模型类时要使用哪个DB,您可以为类本身而不是其元类设置任意属性。我已尝试在常规模型中设置
db_name
属性,但并非所有模型都具有该属性(并且不能强制系统模型具有该属性)。尽管我试图验证属性的存在,但我的路由器在到达这些属性时会阻塞。在这种情况下,如何验证可能未定义的属性?您可以使用
hasattr
进行检查,或者只是尝试/except并捕获异常。回答表单,以便我可以尽情地接受?