小编Jus*_*ade的帖子

Django 1.0.2中的多个数据库,带有自定义管理器

我在用户组中问这个没有回复,所以我想我会在这里试试.我正在尝试设置一个自定义管理器连接到与我的默认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)

django django-models

6
推荐指数
1
解决办法
1169
查看次数

标签 统计

django ×1

django-models ×1