django 1.4数据库路由器 - “无法导入名称连接” [英] django 1.4 database router - "cannot import name connection"
本文介绍了django 1.4数据库路由器 - “无法导入名称连接”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我做了一个简单的db路由器,那个dous没有:
'''file /myproject/myapp/routers.py'''
class ShardingRouter(object) :
def db_for_read(self,model,** hints):
return'default'
def db_for_write(self,model,** hints):
return'default'
def allow_relation(self,obj1,obj2,** hints):
return'default'
def allow_syncdb(self, db,model):
return'default'
我添加在settings.py: / p>
DATABASE_ROUTERS = ['myproject.myapp.routers.ShardingRouter',]
pre>
我收到此错误:
追溯(最多最近的电话最后):
文件/usr/local/lib/python2.7/dist-packages/django/core/handlers/wsgi.py,第219行, __call__
self.load_middleware()
文件/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py,第45行,在load_middleware
mod = import_module(mw_module)
文件/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py,第35行,import_module
__import __(name)
文件/hosting/myproject/myproject/middleware.py第10行在< module>
from django.contrib.sites.models import Site
文件/usr/local/lib/python2.7/dist-packages/django/contrib/sites/models.py,第1行, <模块>
从django.db导入模型
文件/usr/local/lib/python2.7/dist-packages/django/db/__init__.py,第16行在< module>
router = ConnectionRouter(settings.DATABASE_ROUTERS)
文件/usr/local/lib/python2.7/dist-packages/django/db/utils.py,第116行,__init__
raise不正确配置('导入数据库路由器%s时出错%s:%s'%(klass_name,e))
不正确配置:导入数据库路由器时出错ShardingRouter:无法导入名称连接
什么'连接'?这是什么意思?
找不到,问题在哪里((解决方案您需要导入
:
settings.py
中的连接从django.db导入连接
...
...
DATABASE_ROUTERS = ['myproject.myapp.routers.ShardingRouter',]
...
...
I'm trying to shard my database on django, but I've got strange error on a first steps.
I made a simple db router, that dous nothing:
'''file /myproject/myapp/routers.py''' class ShardingRouter(object): def db_for_read(self, model, **hints): return 'default' def db_for_write(self, model, **hints): return 'default' def allow_relation(self, obj1, obj2, **hints): return 'default' def allow_syncdb(self, db, model): return 'default'
I added in settings.py:
DATABASE_ROUTERS = ['myproject.myapp.routers.ShardingRouter',]
I'm getting this error:
Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/wsgi.py", line 219, in __call__ self.load_middleware() File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 45, in load_middleware mod = import_module(mw_module) File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module __import__(name) File "/hosting/myproject/myproject/middleware.py", line 10, in <module> from django.contrib.sites.models import Site File "/usr/local/lib/python2.7/dist-packages/django/contrib/sites/models.py", line 1, in <module> from django.db import models File "/usr/local/lib/python2.7/dist-packages/django/db/__init__.py", line 16, in <module> router = ConnectionRouter(settings.DATABASE_ROUTERS) File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 116, in __init__ raise ImproperlyConfigured('Error importing database router %s: "%s"' % (klass_name, e)) ImproperlyConfigured: Error importing database router ShardingRouter: "cannot import name connection"
What 'connection'? What does it mean? Can't find, where is the problem((
解决方案You need to import
connections
in yoursettings.py
:from django.db import connections ... ... DATABASE_ROUTERS = ['myproject.myapp.routers.ShardingRouter',] ... ...
这篇关于django 1.4数据库路由器 - “无法导入名称连接”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文