前準備として、migration後、管理者ツールでユーザを作ります。
### 管理者作成
python manage.py createsuperuser
http://192.168.33.10:8000/admin/
– adminとnormalユーザを作成します。
– adminユーザにはsurperユーザ権限を付与しておきます。
### @login_requiredによる制御
ページを二つ作ります。
urls.py
from django.contrib import admin import myapp.views as views urlpatterns = [ path('admin/', admin.site.urls), path('apple/', views.apple, name='apple'), path('banana/', views.banana, name='banana'), ]
ログインユーザのみ表示したいページには@login_requiredを付けます。
views.py
from django.shortcuts import render from django.http import HttpResponse from django.contrib.auth.decorators import login_required @login_required(login_url='/admin/login/') def apple(request): return render(request, 'myapp/apple.html') def banana(request): return render(request, 'myapp/banana.html')
ログインした状態では、両方のページが見れます。
ログアウトした場合、@login_requiredを付けたページの方はログインページにリダイレクトされます。
username, passwordを入力すると、@login_requiredのページも表示される。
@login_requiredだと、ロールでの制御はどうするのかわからんが、取り敢えず表示・非表示は物凄く簡単だということはわかった。
次は、ユーザのget, create, update, deleteあたりだな。