408409410ミドルウェア間違った解決策を示唆し、ジャンゴの上位バージョンにプロジェクトを移動します

将项目迁移至django2.X、中间件提示错误为:

エラー:
?:(admin.E408 ')django.contrib.auth.middleware.AuthenticationMiddlewareは、'管理アプリケーションを使用するために、ミドルウェアでなければなりません。
?:(admin.E409「)django.contrib.messages.middleware.MessageMiddlewareは、」管理アプリケーションを使用するために、ミドルウェアでなければなりません。
?:(admin.E410「)django.contrib.sessions.middleware.SessionMiddlewareは、」管理アプリケーションを使用するために、ミドルウェアでなければなりません。

 

ソリューション:

フォーマットを書くとミドルウェアをすることができ、変数名を変更します。

注:MIDDLEWARE_CLASSESからの変数名は、ミドルウェアになる

以前のプロジェクトでの設定は、ミドルウェアDjangoのデフォルトフォーマットが書き込まれます。

コードをコピー
MIDDLEWARE_CLASSES = ' django.contrib.sessions.middleware.SessionMiddleware ' ' django.middleware.common.CommonMiddleware ' ' django.middleware.csrf.CsrfViewMiddleware ' ' django.contrib.auth.middleware.AuthenticationMiddleware ' " ジャンゴ。 contrib.auth.middleware.SessionAuthenticationMiddleware ' ' django.contrib.messages.middleware.MessageMiddleware ' ' django.middleware.clickjacking.XFrameOptionsMiddleware ' 'django.middleware.security.SecurityMiddleware " 、)
コードをコピー


使用ジャンゴの新バージョン、新しいプロジェクトを作成するためには、フォーマット書かれたミドルウェアなどを↓↓↓:

コードをコピー
ミドルウェア= [
     ' django.middleware.security.SecurityMiddleware ' ' django.contrib.sessions.middleware.SessionMiddleware ' ' django.middleware.common.CommonMiddleware ' ' django.middleware.csrf.CsrfViewMiddleware ' ' django.contrib。 auth.middleware.AuthenticationMiddleware ' ' django.contrib.messages.middleware.MessageMiddleware ' ' django.middleware.clickjacking.XFrameOptionsMiddleware " 、]
コードをコピー


私たちは、ミドルウェア書かれたフォーマット変更ジャンゴの新しいバージョンを見ることができます:タプルのリストからの移行をし、ミドルウェア、削除SessionAuthenticationMiddlewareを。


フォーマットを書くとミドルウェアは、この問題を解決することができます変数名を変更します。

 

通りがあった場合SessionAuthenticationMiddlewareミドルウェア、あなたはコメントアウトすることができます

それ以外の場合はエラー:

AttributeError:モジュールのdjango.contrib.auth.middleware "は何の属性を持っていない「SessionAuthenticationMiddleware

上記の例外は、次の例外の直接の原因でした。

...

...

...

django.core.exceptions.ImproperlyConfigured:WSGIアプリケーション「yourproject.wsgi.application」をロードできませんでした。モジュールをインポートするエラー。

おすすめ

転載: www.cnblogs.com/hongdoudou/p/12637509.html