必要な設定:
■settings.py
・settings.pyのINSTALLED_APPSにデフォルトでは次のアプリが含まれているはずなので、有無を確認
’django.contrib.auth’
‘django.contrib.contenttypes’
・settings.pyの、LOGIN_URLにて、ログイン画面を表示するURLを定義。
LOGIN_REDIRECT_URLにて、ログイン後のリダイレクト先を指定。
■ログイン、ログアウトのHTMLtemplateを用意。ログイン用のtemplateは、ユーザー名とパスワード入力を求める画面となる。
■djangoにはログイン・ログアウト用のviewがデフォルトで用意されている。それをurls.pyで指定
1 2 3 4 5 6 7 |
urlpatterns = patterns('', url(r'^admin/', include(admin.site.urls)), url(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'accounts/login.html'}), url(r'^logout/$', 'django.contrib.auth.views.logout', {'template_name': 'accounts/logged_out.html'}), ) |
■login_required
デコレータを使えば,ページの閲覧をログイン済みのユーザだけに制限することが出来る.
1 2 3 4 5 |
from django.contrib.auth.decorators import login_required @login_required def my_view(request): ... |
login_req_requiredを使わないと、if not request.user.is_authenticated():と記述しないといけないので手間。