Когда я использую вид входа в систему, предоставленный Django, он перенаправляет на нужную страницу после входа в систему. Мой код выглядит следующим образом:
urls.py
from django.urls import path
from admn import views as views
from django.contrib.auth import views as log_views
urlpatterns = [
path('login/', log_views.LoginView.as_view(template_name='login.html'), name='login'),
path('profile/', views.profile, name='profile'),
]
views.py
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
@login_required(login_url='/login/')
def profile(request):
return render (request, 'profile.html')
Однако, когда я использую настроенный логин, он входит в систему, но не перенаправляет начальную страницу. Мой код выглядит следующим образом:
urls.py
from admn import views as views
from django.urls import path
urlpatterns = [
path('login/', views.login, name='administration-login'),
path('profile/', views.profile, name='profile'),
]
views.py
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from myforms import UserLoginForm
from django.contrib import messages
def login(request):
if request.method == 'POST':
form = UserLoginForm(request.POST)
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
dj_login(request, user)
messages.success(request, f'You are logged in {username}!')
else:
messages.error(request, f'Not logged in')
else:
form = UserLoginForm()
return render (request, 'login.html',{'form':form})
@login_required(login_url='/login/')
def profile(request):
return render (request, 'profile.html')