[英]Django second DB returns None
为了建立两个数据库,我遵循了文档,其中包括:
运行迁移(在第二个数据库中为模型创建了一个空白表)
从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.