我想在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」 屬性/類
它出什麼問題了?
我不太瞭解django,但「map」是一個內置函數。我懷疑它的導入,而不是你想要的模塊。內置函數後不要命名模塊! – tdelaney 2014-09-19 15:47:15
我把這個名字改成了_「mymap」_,但仍然有這個異常( – adjstts 2014-09-19 15:53:45
那個應用有一個'__init __。py'文件嗎? – karthikr 2014-09-19 15:59:10