我想在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