Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What is going on with this article?
@Brokenumbrella

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

4
Help us understand the problem. What is going on with this article?
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.
Sign Up
If you already have a Qiita account Login
4
Help us understand the problem. What is going on with this article?