Help us understand the problem. What is going on with this article?

Django 1.9 から 2.1 に上げる時の備忘録

More than 1 year has passed since last update.

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 はこんな感じです。

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 はこんな感じです。

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 の回答も参考にさせて頂きました事、ここに御礼申し上げます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした