以前はdjangoアプリで管理サイトを使用していましたが、今は何が問題なのかわかりません。
私はmongodbsettings.py
データベース構成を持っています:
DATABASES = {
'default': {
'ENGINE': 'django_mongodb_engine',
'NAME': 'myapp',
'USER': 'username',
'PASSWORD': '********'
'HOST': 'myserver.com',
'PORT': '27157',
'SUPPORTS_TRANSACTIONS': False,
}
}
データベースから情報を読み取って表示するビューが既にいくつかあるため、これらの設定が正しいことはわかっています。したがって、私のアプリケーションがmongodbデータベースに接続できるという事実を知っています。
管理サイトを有効にするために、urls.py、admin.py、および settings.py を構成しました (そして、以前は機能していました)。ただし、アクセスしようとすると、次のようになります。
Traceback:
File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/sites.py" in wrapper
214. return self.admin_view(view, cacheable)(*args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/utils/decorators.py" in _wrapped_view
93. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/views/decorators/cache.py" in _wrapped_view_func
79. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/sites.py" in inner
195. if not self.has_permission(request):
File "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/sites.py" in has_permission
148. return request.user.is_active and request.user.is_staff
File "/usr/local/lib/python2.6/dist-packages/django/contrib/auth/middleware.py" in __get__
9. request._cached_user = get_user(request)
File "/usr/local/lib/python2.6/dist-packages/django/contrib/auth/__init__.py" in get_user
107. user_id = request.session[SESSION_KEY]
File "/usr/local/lib/python2.6/dist-packages/django/contrib/sessions/backends/base.py" in __getitem__
47. return self._session[key]
File "/usr/local/lib/python2.6/dist-packages/django/contrib/sessions/backends/base.py" in _get_session
195. self._session_cache = self.load()
File "/usr/local/lib/python2.6/dist-packages/mongoengine/django/sessions.py" in load
26. s = MongoSession.objects(session_key=self.session_key,
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
41. _connection[identity] = _get_connection(reconnect=reconnect)
File "/usr/local/lib/python2.6/dist-packages/mongoengine/connection.py" in _get_connection
33. raise ConnectionError('Cannot connect to the database')
Exception Type: ConnectionError at /admin/
Exception Value: Cannot connect to the database
にいくつかのデバッグ情報を導入しましmongoengine/connection.py
た。データベースへの接続に使用される接続設定は次のとおりです。
{'host': 'localhost', 'port': 27017}
これは、私が提供した設定ではなく、デフォルトの接続設定を使用していることを意味しますsettings.py
。これを引き起こしている可能性のあるものについて何か考えはありますか? データベース設定が管理サイトに渡されないのはなぜですか? 管理者設定で何かをするのを忘れたのでしょうか?
編集:これらの指示に従って
、django アプリを mongodb データベースで動作するように構成しました。私はdjangotoolboxとdjango-nonrelを使用しています。
'ENGINE': 'django_mongodb_engine' を設定するときに使用する必要がある mongodb エンジンは、 mongoengine ではなくdjango-mongodb-engineであることに気付きました。しかし、スタック トレースでは、mongoengine を使用していることがわかります。(django-mongodb-engine は mongoengine に依存しません)ビューで正しいものが使用されていると推測しています (それが機能する理由です)が、管理者は何らかの理由で mongoengine を使用していますか?!?! 正しく理解していれば、私のアプリはmongoengineが動作する必要さえありません。しばらく前に実験していたので、インストールされているだけです。