2015-03-02 87 views
0

我試圖建立在Django一個路由器,但它不工作,它只是似乎被一起忽略,我已經添加上設置DATABASE_ROUTERS,並建立了數據庫路由器,以及:Django的忽略路由器設置

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 
.... 

雜項是主項目名稱

+0

請在此處發佈您的代碼,而不是鏈接到pasebin。 – xnx 2015-03-02 12:20:40

+0

在'routers'目錄中有'__init __。py'文件嗎? – Selcuk 2015-03-02 12:23:23

+0

@Selcuk路由器只是文件的名稱,它不是它自己的文件夾,routers.py與settings.py文件夾在同一個文件夾中 – ShinySides 2015-03-02 12:26:10

回答

0

我有類似的東西,通過if語句添加傳開它與其他返回無:

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

不知道爲什麼它需要這個,但它解決了我的問題。可能值得一試。