微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – Django中跨数据库的“匹配”/关系数据

在开发一个索引系统文档的网站时,我遇到了一个棘手的问题,即在Django中跨数据库的数据“匹配”/关系.

我本地数据库的简化模型:

from django.db import models

class Document(models.Model):
    name = models.CharField(max_length=200)
    system_id = models.IntegerField()
    ...

想象的模型,系统细节存储在远程数据库中.

from django.db import models               

class System(models.Model):     
    name = models.CharField(max_length=200)           
    system_id = models.IntegerField()      
    ...

我们的想法是,在我的网站上创建一个新的文档条目时,相关系统的ID将存储在本地数据库中.在呈现数据时,我必须使用存储的ID从远程数据库中检索系统名称以及其他详细信息.

我已经调查了foreign keys across databases,但这似乎非常广泛,我不确定我是否想要关系.相反,我可视化Document模型/类中的一个函数,该函数能够检索匹配的数据,例如通过导入自定义路由器/函数.

我该如何解决这个问题?

请注意,我将无法更改远程数据库上的任何内容,它是只读的.不确定我是否应该为System创建一个模型.两个数据库都使用Postgresql,但我的印象是它与使用哪个数据库的这种情况无关.

解决方法:

在django文档multi-db (manually-selecting-a-database)

# This will run on the 'default' database.
Author.objects.all()

# So will this.
Author.objects.using('default').all()

# This will run on the 'other' database.
Author.objects.using('other').all()

The 'default' and 'other' are aliases for you databases.
In your case it would Could be 'default' and 'remote'.

当然你可以用你想要的任何东西替换.all().

Example: System.objects.using('remote').get(id=123456)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐