2016-07-20 15 views
-2

私はミドルウェアに問題があります。私はそれについて多くの質問を見つけましたが、私の場合は何も助けません。Djangoミドルウェアの 'module'オブジェクトは呼び出し可能ではありません

ミドルウェアを使用してcurrent_userを私のモデルで使用して、変更されたユーザを保存メソッドに保存します。これをビューに書き込まないでください。

Traceback (most recent call last): 
    File "C:\Program Files (x86)\Python35-32\Lib\wsgiref\handlers.py", line 137, in run 
    self.result = application(self.environ, self.start_response) 
    File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\contrib\staticfiles\handlers.py", line 63, in __call__ 
    return self.application(environ, start_response) 
    File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\core\handlers\wsgi.py", line 158, in __call__ 
    self.load_middleware() 
    File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\core\handlers\base.py", line 53, in load_middleware 
    mw_instance = mw_class() 
TypeError: 'module' object is not callable 
[20/Jul/2016 10:51:44] "GET /panel/ HTTP/1.1" 500 59 
Traceback (most recent call last): 
    File "C:\Program Files (x86)\Python35-32\Lib\wsgiref\handlers.py", line 137, in run 
    self.result = application(self.environ, self.start_response) 
    File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\contrib\staticfiles\handlers.py", line 63, in __call__ 
    return self.application(environ, start_response) 
    File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\core\handlers\wsgi.py", line 158, in __call__ 
    self.load_middleware() 
    File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\core\handlers\base.py", line 53, in load_middleware 
    mw_instance = mw_class() 
TypeError: 'module' object is not callable 
[20/Jul/2016 10:51:44] "GET /favicon.ico HTTP/1.1" 500 59 

:私はのようなエラーを取得していますので、このコードで間違った何かがあり

ミドルウェア

from threading import local 

_user = local() 


class CurrentUserMiddleware(object): 
    def process_request(self, request): 
     _user.value = request.user 


def get_current_user(): 
    return _user.value 

:ここ

は、このコードのoriginal postです私のミドルウェア設定:

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.locale.LocaleMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.middleware.gzip.GZipMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
    'django.middleware.security.SecurityMiddleware', 
    'reversion.middleware.RevisionMiddleware', 
    'task.current_user', 
) 

エラーがある場合は何かアドバイスをいただけますか?私はあなたがいくつか持っていることを願っていますので、私は試してみる他のアイデアはありません。

+1

ミドルウェアの設定を表示してください。また、**決してこれを行うことはありません**。 –

+0

@DanielRosemanどうしてこのことを決してしないのですか? /質問を更新し、ミドルウェア設定を追加しました – Thaian

+0

task.curreny_user.pyの内容は何ですか?私はあなたのプロジェクトのツリー構造を見ることができますか? – lapinkoira

答えて

3

クラスのミドルウェアのフルパスを指定する必要があります。ミドルウェアを含むモジュールではありません。

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.locale.LocaleMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.middleware.gzip.GZipMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
    'django.middleware.security.SecurityMiddleware', 
    'reversion.middleware.RevisionMiddleware', 
    'task.current_user.CurrentUserMiddleware', 
) 

上記の例はたくさんあります。

関連する問題