В моем приложении, если пользователь входит в первый раз, он перенаправляется на страницу профиля, а со второго раза он перенаправляется на домашнюю страницу (VChome в моем приложении).Поэтому я решил написать это в urls.py и views.py
urls.py
from django.urls import path
from . import views
urlpatterns = [
path('VC/',views.VChome, name='VChome'),
path('profile/',views.update_profile,name='profile'),
path('users/login/', views.login_user, name='login'),
path('login/done/', LoginRedirectView.as_view(), name='login_redirect'),
]
views.py
class LoginRedirectView(generic.View):
def get(self, request, *args, **kwargs):
logout(request)
username = password = ''
if request.POST:
username = request.POST['username']
password = request.POST['password']
userLL = CustomUser.objects.get(username=username)
# print(userLL)
last_login = userLL.last_login
# print(last_login)
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
if last_login == None:
return HttpResponseRedirect(reverse("profile"))
else:
return HttpResponseRedirect(reverse("VChome"))
return render(request, 'login.html')
login.html
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
{% block content %}
<form method="post">
<strong><p>Sign in</p></strong>
<p>Username</p>
{% csrf_token %}
<input type="text" id="username" name="username" placeholder="Username">
<p>Password</p>
{% csrf_token %}
<input type="password" name="password" id="password" placeholder="Password">
<input type="submit" value="Login">
</form>
{% endblock %}
</body>
</html>
У меня есть шаблоны profile.html и VChome.html, и я уверен, что они правильно отображаются в views.py
Проблема здесь в том, что если я упомяну LOGIN_REDIRECT_URL = 'VChome',Страница входа перенаправляется на VChome.
Если я не упоминаю об этом, страница входа перенаправляется на / account / profile
Я хочу, чтобы страница входа перенаправлялась на основании упомянутого ограничения last_loginв login_user в views.py