繁体   English   中英

Django第二个DB返回None

[英]Django second DB returns None

为了建立两个数据库,我遵循了文档,其中包括:

  • 在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为None。 这不应该是因为数据存在于第二个数据库中。 我的假设是它从默认数据库中查询数据,因为我错过了一步。

即使仅使用using(),我是否也需要“安装”路由器? 如果是这样,我应该在哪里保存文件?

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

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

谢谢你的帮助。

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

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

class Meta:
    app_label = [app1_this]
    db_table = [app_another]_[model_name]

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM