Django 从不同数据库加载相同表名的查询集
我想通过django查询将3个不同数据库中的用户表中的数据组合起来。 它们的结构大致相同,因此我选择制作一个非托管模型来表示它们 出于测试目的,我通过将输出打印到控制台来检查输出 但是,输出仅包含db1的数据 我无法将它们合并,因为有一个不可分割的文本字段 Q:有什么比通过model.objects.raw()触发原始sql更好的方法吗 以下是一些文件,以便更好地进行概述: settings.py相同的数据库管理系统Django 从不同数据库加载相同表名的查询集,django,Django,我想通过django查询将3个不同数据库中的用户表中的数据组合起来。 它们的结构大致相同,因此我选择制作一个非托管模型来表示它们 出于测试目的,我通过将输出打印到控制台来检查输出 但是,输出仅包含db1的数据 我无法将它们合并,因为有一个不可分割的文本字段 Q:有什么比通过model.objects.raw()触发原始sql更好的方法吗 以下是一些文件,以便更好地进行概述: settings.py相同的数据库管理系统 DATABASES = { 'default': {...}, '
DATABASES = {
'default': {...},
'db1': {
'ENGINE': 'sql_server.pyodbc', ...},
'db2': {
'ENGINE': 'sql_server.pyodbc', ...},
'db3': {
'ENGINE': 'sql_server.pyodbc', ...}
}
}
models.py-3个数据库的相同型号
class UserProfile(models.Model):
id = models.IntegerField(db_column="x", primary_key=True)
user_name = models.CharField(db_column="y", max_length=255, null=True, blank=True)
...
class Meta:
managed = False
db_table = 'Users'
views.py-针对所有输出和不同顺序进行测试
def userprofile(request):
d = UserProfile.objects.using('db1').all()
e = UserProfile.objects.using('db2').all()
f = UserProfile.objects.using('db3').all()
for row in f:
print(row.id, row.user_name)
...
context = {...}
return render(request, 'userprofile.html', context)