Django2.1へのバージョンアップでは関数ベース認証用ビューの書き換えが必要

Django2.1へのバージョンアップでは認証部分の書き方で注意が必要です。

Django1.11から以下のようなcontrib.auth.views.login()関数ビューを使う書き方は非推奨になっていましたが(login以外の認証機能も同様)、2.1からはこの関数ビューは削除されて使えなくなっています。

urls.py (Django2.1からは使えない書き方)

from django.urls import path
from django.contrib.auth import views as auth_views

urlpatterns = [
    path(‘login/’, auth_views.login, {‘template_name’: ‘login.html’, ‘authentication_form’: LoginForm}, name=’login’),
]

したがって、Django2.1からは以下のようにクラスベースビューを使った書き方に変えないとエラーでDjangoが起動されませんのでご注意下さい。

urls.py (Django2.1から必須の書き方)

from django.urls import path
from django.contrib.auth import views as auth_views

urlpatterns = [
    path(‘login/’, auth_views.LoginView.as_view(template_name=’login.html’, authentication_form=LoginForm), name=’login’),
]

【関連記事】
Djangoを1.11から2.0にバージョンアップ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です