Djangoのログイン機能に少し引っかかってしまったので、メモします。
startappはDjangoで作成したアプリ内という意味です。
startapp/urls.py
from django.urls import path
from .views import homefunc, loginfunc, logoutfunc
app_name = 'blog'
urlpatterns = [
path('', homefunc, name='index'),
path('login/', loginfunc, name='login'),
path('logout/', logoutfunc, name='logout'),
]
startapp/view.py
from django.shortcuts import render, redirect,
from django.contrib.auth import authenticate, login, logout
from django.contrib.auth.decorators import login_required
@login_required
def homefunc(request):
return render(request, 'index.html', {})
def loginfunc(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('blog:index')
else:
return render(request, 'login.html', {})
return render(request, 'login.html', {})
def logoutfunc(request):
logout(request)
return redirect('blog:login')
setting.py
LOGIN_URL = 'blog:login'
LOGIN_REDIRECT_URL = 'blog:index'