プログラミング学習413日目 Djangoで社内受発注システムアプリ作成 5日目 ~login状態の判定 logout実装~

login状態の判定について。

function-based viewの場合において、@login_requiredを書くことによってその下の関数が実行される前にログイン状態が判定できます。@~はデコレータと呼ばれています。

#views.py

@login_required
def choicesview(request):
   user = request.user
   products = ProductModel.objects.filter(display='y').order_by('product_id')
   return render(request, 'choices.html', {'user': user, 'products': products})

この際、ログインしていない場合に遷移させるディレクトリをsettings.pyにLOGIN_URLという変数でURLを指定する必要があります。

 #settings .py

LOGIN_URL ='/login/' ----コード追記 ('/login/'はlogin画面のURL)

これでログインされていない場合、login画面に遷移されるようになります。


ついでに簡単なのでlogoutの実装も。

#urls.pyfrom django.contrib import admin
from django.urls import path
from .views import loginview, logoutview  ---logoutviewを追記

urlpatterns = [
   path('admin/', admin.site.urls),
   path('logout/', logoutview, name='logout') ----追記
]
#views.py

from django.contrib.auth import authenticate, login, logout

def logoutview(request):
   logout(request)
   return redirect('login')







この記事が気に入ったらサポートをしてみませんか?