5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-09-08

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

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?