2014-09-19 67 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

相关问题