«Не подключен к базе данных» на сайте администратора Django с MongoDB через django-nonrel - PullRequest
0 голосов
/ 06 июля 2011

Я пытаюсь настроить админ-сайт 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 Ответ

1 голос
/ 06 июля 2011

(Публикация в качестве ответа, чтобы вы могли закрыть вопрос)

Для документов , вам необходимо явно подключиться к MongoDB, используя метод connect(). Это может быть просто

connect('dbname')

Если вы используете MongoDB на локальном компьютере, а также принимает аргументы ключевых слов для host, port (должно быть int), username и password и дополнительно принимает другие Аргументы ключевых слов, действительные для pymongo.connection.Connection

Также для документов , правильное место для звонка на connect() находится в settings.py.

...