我在用户组中问这个没有回复,所以我想我会在这里试试.我正在尝试设置一个自定义管理器连接到与我的默认mysql连接相同的服务器上的另一个数据库.我试过这里和这里的例子,但没有运气.回来时我得到一个空元组
MyCustomModel.objects.all().
这是我在manager.py中的内容
from django.db import models
from django.db.backends.mysql.base import DatabaseWrapper
from django.conf import settings
class CustomManager(models.Manager):
"""
This Manager lets you set the DATABASE_NAME on a per-model basis.
"""
def __init__(self, database_name, *args, **kwargs):
models.Manager.__init__(self, *args, **kwargs)
self.database_name = database_name
def get_query_set(self):
qs = models.Manager.get_query_set(self)
qs.query.connection = self.get_db_wrapper()
return qs
def get_db_wrapper(self):
# Monkeypatch the settings file. This is not thread-safe!
old_db_name = settings.DATABASE_NAME
settings.DATABASE_NAME = self.database_name
wrapper = DatabaseWrapper()
wrapper._cursor(settings)
settings.DATABASE_NAME = old_db_name …Run Code Online (Sandbox Code Playgroud)