2017-05-17 10 views
0

私のプロジェクト/ app/middleware.pyファイルにLoggedInUserMiddlewareを作成し、これをプロジェクト/ master/settings.pyのMIDDLEWARE部分の最後のエントリとして追加しましたファイル。 settings.pyに追加する前に、アプリはうまく対応します。 settings.pyに追加した後、私のアプリケーションの任意のURLからERR_EMPTY_RESPONSEを取得します。カスタムミドルウェアをsettings.pyに追加するときのDjangoアプリのERR_EMPTY_RESPONSE

My LoggedInUserMiddlewareは現在、物事をクラッシュさせないようにしようとしています。

class LoggedInUserMiddleware(object): 
    def process_request(self, request): 
     return None 

私が理解しているように、ミドルウェアはすべての新しいHTMLリクエストを1つずつ実行する必要がありますが、絶対に何もしません。

+0

を余談LoggedInUserMiddlewareは何をしたいですか?組み込みの認証ミドルウェアの機能を複製していないことを確認してください! – Alasdair

+0

匿名ユーザーが私のURLのいずれかを要求した場合は、ミドルウェアがログインURLにリダイレクトするようにします。私はちょうどあなたが言ったように、私がhttps://docs.djangoproject.com/es/1.9/topics/http/middleware/に従っていたリンクが期限切れであることに気付きました! –

答えて

0

old-style middleware(Django < 1.10)を書いています。 MIDDLEWARE_CLASSESの代わりにMIDDLEWARE設定を使用している場合は、new-style middlewareと記述してください。

1つのオプションはMiddlewareMixinです。

from django.utils.deprecation import MiddlewareMixin 

class LoggedInUserMiddleware(MiddlewareMixin): 
    def process_request(self, request): 
     return None 

しかし古いMIDDLEWARE_CLASSES設定をサポートする必要がない場合は、ミックスインを使用する必要はありません、と私はドキュメントの例から開始します:

class LoggedInUserMiddleware(object): 
    def __init__(self, get_response): 
     self.get_response = get_response 
     # One-time configuration and initialization. 

    def __call__(self, request): 
     # Code to be executed for each request before 
     # the view (and later middleware) are called. 

     response = self.get_response(request) 

     # Code to be executed for each request/response after 
     # the view is called. 

     return response 
+0

ジャックポット。本当にありがとう! –

関連する問題