从Django自定义命令中的多个数据库加载

时间:2014-11-10 19:39:03

标签: django

如果我正在创建Django自定义命令,我可以从多个数据库获取数据吗?在C:/Project/myproject/settings.py,我有:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

然后在C:/Project/myproject/myapp/management/commands/mycommand.py,我有:

users = User.objects.all()

User中定义了C:/Project/myapp/models.py

但是,如果我有几个数据库,名为db1.sqlite3db2.sqlite3db3.sqlite3等,我想从我所有这些数据库加载所有User个对象怎么办?自定义命令?这可能吗?

1 个答案:

答案 0 :(得分:2)

来自the documentation

  

您可以在任何位置为QuerySet选择数据库   QuerySet“chain。”只需在QuerySet上调用using()即可获得另一个   使用指定数据库的QuerySet。

您只需在settings.py中定义更多数据库,为其命名并将该名称传递给using('db_name')。