2

mod_python を使用して、Django アプリケーションを Apache2 ベースのサーバーにデプロイしようとしています。ハンドラーを正しく設定し、プロジェクトで mod_python が機能するように構成しました。私のプロジェクトは、ユーザーを Twitter に接続するためのカスタム認証バックエンドを実装しており、バックエンドの実装はオンになっています。

myproject
|- backends/

directory.すべてが正常に機能しているようで、ページが読み込まれ、読み取り/書き込み操作を適切に行うことができます。しかし、Twitter アカウントでログインしようとすると、アプリケーションは次のような例外を発生させます。

認証バックエンド backends.twitteroauth のインポート中にエラーが発生しました: "backends.twitteroauth という名前のモジュールはありません"

私のsettings.pyでは、バックエンドを次のように登録しています

AUTHENTICATION_BACKENDS = (
   'django.contrib.auth.backends.ModelBackend',
   'myproject.backends.twitteroauth.TwitterBackend',
)

何が問題ですか?

4

3 に答える 3

2

データベースを削除すると、私の問題は解決しました。私が推測できる限り、ユーザーがログに記録されている場合、対応するログインバックエンドはデータベースのセッション変数として保持されます。私のsettings.pyファイルは

AUTHENTICATION_BACKENDS = (
   'django.contrib.auth.backends.ModelBackend',
   'backends.twitteroauth.TwitterBackend',
)

訂正する前に。settings.pyを変更してアプリケーションを再起動するだけでは不十分でした。dbからセッション関連のレコードも削除する必要があります。

于 2010-01-13T16:23:00.390 に答える
2

問題は、python がモジュールを見つけられないことですtwitteroauth。入っているファイルの名前は何TwitterBackendですか?また、パッケージとしてマークする__init__.pyファイルがあることを確認してください。backends

編集:

シェルを実行するとどうなるか

python manage.py shell

そこにインポートしようとしますか?

from myproject.backends.twitteroauth import TwitterBackend

他のものは問題なく動作myprojectするので、python パスにあると思います。

于 2010-01-13T12:07:13.340 に答える