#Django 1.9 で作成されたアプリを 2.1.1 対応した際の手順を備忘録として、また同じことをやろうとしてる人への参考として残します。
###1. urls.py の設定を変更します
参照:https://docs.djangoproject.com/ja/2.1/topics/auth/default/#all-authentication-views
urlpatterns=[] の中 url(r'^$', app.views.home, name='home') の url を re_path に置き換えます。
次にログイン・アウトビューが django.contrib.auth.viewsの login と logout メソッド から django.contrib.auth.views の LoginView と LogoutView クラスに変更になっているためここも変更します。
変更後の urls.py はこんな感じです。
urlpatterns = [
# Examples:
re_path(r'^$', app.views.home, name='home'),
re_path(r'^contact$', app.views.contact, name='contact'),
re_path(r'^about', app.views.about, name='about'),
re_path(r'^login/$',
auth_views.LoginView.as_view(template_name="app/login.html"), name="login"),
re_path(r'^logout$',
auth_views.LogoutView.as_view(next_page='/'), name='logout'),
# Uncomment the admin/doc line below to enable admin documentation:
# re_path(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
# re_path(r'^admin/', include(admin.site.urls)),
]
ちなみに、Logout 後のリダイレクトをトップページにしています。
適宜 next_page='/' の所を変更して下さい。
(settings.py に LOGOUT_REDIRECT_URL など設定しておくと良いかも)
###2. settings.py の MIDDLEWARE_CLASSES を MIDDLEWARE に変更します。
参照:https://docs.djangoproject.com/ja/2.1/topics/http/middleware/#activating-middleware
単純に MIDDLEWARE_CLASSES を MIDDLEWARE に変更するだけです。
(ここはDjanog1.10以上なら既に変更されていると思います)
更に、'django.contrib.auth.middleware.SessionAuthenticationMiddleware' を削除します。
変更後の settings.py はこんな感じです。
MIDDLEWARE = [
'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',
]
###3. あとがき
余りやる事は無いかもしれませんが、情報を探すのに手間取ったため纏めておきました。
また、解決に至るまでに stack overflow の回答も参考にさせて頂きました事、ここに御礼申し上げます。