使用MongoDB通过django-nonrel在Django管理站点上“未连接到数据库”

时间:2011-07-06 13:33:23

标签: python django mongodb django-nonrel

我正在尝试按照此处的说明为我的django应用程序配置Django管理站点:https://docs.djangoproject.com/en/dev/ref/contrib/admin/。 我运行开发服务器但是当我尝试访问/admin url时,我得到一个错误,堆栈跟踪说没有连接到数据库。我是django的新手,因为我假设我不需要使用django模型层显式创建与数据库的连接。我错过了什么?

Traceback:
File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response
  178.                 response = middleware_method(request, response)
File "/usr/local/lib/python2.6/dist-packages/django/contrib/sessions/middleware.py" in process_response
  36.                 request.session.save()
File "/usr/local/lib/python2.6/dist-packages/mongoengine/django/sessions.py" in save
  48.         s = MongoSession(session_key=self.session_key)
File "/usr/local/lib/python2.6/dist-packages/django/contrib/sessions/backends/base.py" in _get_session_key
  175.             self._session_key = self._get_new_session_key()
File "/usr/local/lib/python2.6/dist-packages/django/contrib/sessions/backends/base.py" in _get_new_session_key
  167.             if not self.exists(session_key):
File "/usr/local/lib/python2.6/dist-packages/mongoengine/django/sessions.py" in exists
  34.         return bool(MongoSession.objects(session_key=session_key).first())
File "/usr/local/lib/python2.6/dist-packages/mongoengine/queryset.py" in __get__
  1151.         db = _get_db()
File "/usr/local/lib/python2.6/dist-packages/mongoengine/connection.py" in _get_db
  45.             raise ConnectionError('Not connected to the database')

Exception Type: ConnectionError at /admin/
Exception Value: Not connected to the database

我运行manage.py syncdb我可以看到与mongodb数据库的连接有效(它在我的mongodb数据库中创建了几个集合)。所以在这种情况下,它只是起作用。与上述情况有什么不同?

谢谢

1 个答案:

答案 0 :(得分:1)

(发布作为答案,以便您可以关闭问题)

the docs,您需要使用connect()方法显式连接到MongoDB。这可以是一个简单的

connect('dbname')

如果您在本地计算机上运行MongoDB,并且还接受hostport(应该是int),username和{的关键字参数{1}},并且还接受对pymongo.connection.Connection

有效的其他关键字参数

同样根据the docs,您拨打password的正确位置位于connect()