Django第二个DB返回None

时间:2017-07-18 13:56:27

标签: python django multiple-databases

要设置两个数据库,我遵循的文档包括:

  • 在setting.py中添加数据库信息DATABASES = {}
  • 从另一个数据库
  • 创建模型的匹配模型
  • 运行迁移(在第二个数据库中为模型创建了一个空白表)

    来自client_portal.models的

    导入client_names

        def try_names(request):
            cn = client_portal.objects.using('second_db').filter(client_id='170155').last()
    

    打印(cn.last_name)

cn是无。它不应该因为数据存在于第二个DB中。我的假设是它从默认数据库中查询数据,因为我错过了一步。

我是否需要'安装'路由器即使我将使用use()?如果是这样,我在哪里保存文件?

DATABASE_ROUTERS = ['path.to.AuthRouter', 'path.to.PrimaryReplicaRouter']

该示例来自文档。 Django在哪里期待路由器文件?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

事实证明,迁移将表命名为[app] _ [model_name],因此在不同的项目中使用不同的应用程序名称,我最初访问表migrate --database = created。

要访问另一台服务器上的表,请使用models.py中的两个数据库服务器上的表名匹配:

application.properties

如果其他人有更好的解决方案,请告诉我。