adj*_*tts 2 python database django django-settings
我想在 Django 上编写一个多表应用程序,所以我创建了两个数据库,其中一个默认使用,另一个 - "map"由特定应用程序使用 - "map"。
地图/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
Run Code Online (Sandbox Code Playgroud)
设置.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']
Run Code Online (Sandbox Code Playgroud)
问题是当我运行python manage.py syncdb它时说:
django.core.exceptions.ImproperlyConfigured:模块“map”没有定义“MapRouter”属性/类
它出什么问题了?
您需要在设置中输入路由器的完整路径。
DATABASE_ROUTERS = ['map.models.MapRouter']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3472 次 |
| 最近记录: |