2014-09-19 61 views
2

我想在Django上編寫一個多表應用程序,所以我創建了兩個數據庫,其中一個默認使用,其他 - 「地圖」被特定應用程序使用 - 「地圖」模塊沒有定義屬性/類

地圖/ models.py:

from django.db import models class MapRouter(object): def db_for_read(self, model, **hints): if model._meta.app_label == 'map': return 'map' return None def db_for_write(self, model, **hints): if model._meta.app_label == 'map': return 'map' return None def allow_relation(self, obj1, obj2, **hints): if obj1._meta.app_label == 'map' or \ obj2._meta.app_label == 'map': return True return None def allow_migrate(self, db, model): if db == 'map': return model._meta.app_label == 'map' elif model._meta.app_label == 'map': return False return None

settings.py:

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'eventmap', 'USER': 'eventmap', 'PASSWORD': 'eventmap', 'HOST': 'localhost', 'PORT': '', }, 'map': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'map', 'USER': 'eventmap', 'PASSWORD': 'eventmap', 'HOST': 'localhost', 'PORT': '', } } DATABASE_ROUTERS = ['map.MapRouter']

問題是,當我運行python manage.py syncdb它說:

django.core.exceptions.ImproperlyConfigured:模塊 「地圖」 沒有定義 「MapRouter」 屬性/類

它出什麼問題了?

+0

我不太瞭解django,但「map」是一個內置函數。我懷疑它的導入,而不是你想要的模塊。內置函數後不要命名模塊! – tdelaney 2014-09-19 15:47:15

+0

我把這個名字改成了_「mymap」_,但仍然有這個異常( – adjstts 2014-09-19 15:53:45

+0

那個應用有一個'__init __。py'文件嗎? – karthikr 2014-09-19 15:59:10

回答

3

您需要在設置中放置路由器的完整路徑。

DATABASE_ROUTERS = ['map.models.MapRouter'] 
+0

謝謝,它的工作原理 – adjstts 2014-09-19 23:20:00

相關問題