在开发一个索引系统文档的网站时,我遇到了一个棘手的问题,即在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] 举报,一经查实,本站将立刻删除。