2011-07-06 24 views
0

私のdjangoアプリケーションのDjango管理サイトを設定しようとしています:https://docs.djangoproject.com/en/dev/ref/contrib/admin/。 私は開発サーバーを実行しますが、/admin URLにアクセスしようとすると、データベースへの接続がないというスタックトレースでエラーが発生します。私はdjangoモデルレイヤーを使用して明示的にデータベースへの接続を作成する必要はないと仮定していたので、djangoの新機能です。私は何が欠けていますか?Django管理サイトのDjango管理サイトのdjango-nonrelから

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データベースへの接続が動作することを確認することができます。この場合、それはちょうど働いた。上記のケースとは何が違うのですか?

the docsパー

+0

完全なスタックトレースを投稿できますか? – dcrosta

+0

私は今私にそれを持っていませんが、私は質問に後でそれを追加します。申し訳ありません。 –

+0

@drcostaは質問を編集し、スタックトレースを追加しました。 –

答えて

1

(あなたが質問を閉じることができますので、答えとして投稿)

ありがとう、あなたは明示的にconnect()メソッドを使用してのMongoDBに接続する必要があります。これはあなたのローカルマシン上のMongoDBを実行している場合は、単純な

connect('dbname') 

こと、そしてまたhostのためのキーワード引数を受け入れることができ、portは、username、およびpasswordintする必要があります)、さらに他のキーワードを受け入れpymongo.connection.Connectionの有効な引数

また、the docsごとに、connect()に電話をかける適切な場所はsettings.pyです。

+0

私は 'syncdb'がなぜ動作するようになったのか、まだ分かりません。コレクションが何かによって作成された可能性はありますか?あなたがそれを理解できるかどうか教えてください。 – dcrosta

+0

そうです。それを設定したsettings.pyに追加した後(まあまあではありませんが、今は別のエラーが出ていますが、別の話です)。しかし、私はconnectメソッドを明示的に呼び出す必要はないと思っていました。私はdjango-nonrelが何らかの形でそれを行うと仮定していました。また、syncdbが以前に動作していたことを保証することができます。これは、db内でこれらのcolletionを作成するものでした。 –