Django忽略路由器设置

时间:2015-03-02 12:16:49

标签: django

我试图在Django中设置一个路由器,但是它不工作它似乎一起被忽略了,我在设置上添加了DATABASE_ROUTERS并创建了db路由器:

settings.py

DATABASE_ROUTERS = ['misc.routers.MasterSlaveRouter',]

routers.py

class MasterSlaveRouter(object):
    def db_for_read(self, model, **hints):
        print "Router"
        return 'dbname'
    def db_for_write(self, model, **hints):
        return None
    def allow_relation(self, obj1, obj2, **hints):
        return None
    def allow_migrate(self, db, model):
        return None

但似乎根本没有使用

概要

misc/
- __init__.py
- settings.py
- routers.py
- urls.py

otherapp/
- __init__.py
- views.py
....

misc是主项目名称

1 个答案:

答案 0 :(得分:0)

我有类似的东西,并通过在else中返回一个if语句来回答它:

def db_for_read(self, model, **hints) :
    if model._meta.app_label == 'your_app_name' :
        return 'dbname'
    else :
        return None

不知道为什么需要这个,但它解决了我的问题。值得一试。