Переход по url Django, в url адрес не меняется
urls.py
urlpatterns = [
path('', views.auth, name='auth'), # Страница входа.
path('viewBirds.html/', views.viewBirds, name='viewBirds'), # Представление птиц.
path('creatBirds.html/', views.creatBirds, name='creatBirds'), # Создание птиц.
path('creatUser.html/', views.rgstrUser, name='rgstrUser'), # Создание пользователя.
path('viewUser.html/', views.viewUser, name='viewUser'), # Просмотренные птицы.
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
views.py
def auth(request):
"""Процесс аутентификации пользователя."""
if request.method == 'POST':
login = request.POST.get("login")
password = request.POST.get("password")
pswHash = sha256(password.encode('utf-8')).hexdigest()
user = User.objects.filter(login=login, password=pswHash)
if user: # Если логин и пароль существуют, то переходим на основную форму, это процесс авторизации.
return render(request, 'viewBirds.html/', {"login": login})
elif login is not None:
ErorrMessage = "Неправильный логин или пароль."
return render(request, 'auth.html/', {"Error": ErorrMessage})
return render(request, 'auth.html/')
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<form method="post" action="{% url 'auth' %}"> {% csrf_token %}
<style>
.center {
text-align: center;
}
.btn {
text-align: center
display: inline-block; /* Строчно-блочный элемент */
background: #8C959D; /* Серый цвет фона */
color: #fff; /* Белый цвет текста */
padding: 1rem 1.5rem; /* Поля вокруг текста */
text-decoration: none; /* Убираем подчёркивание */
border-radius: 3px; /* Скругляем уголки */
text-align: center;
}
</style>
<div class="center">
<h3 style="center">Вход</h3>
<font color="red" size="4" >
<td>{{ Error }}</td>
</font>
<br>
<input name="login" maxlength="80" minlength="1" type="text" placeholder="Логин" required />
<br>
<br>
<div class="center">
<input name="password" maxlength="80" minlength="3" type="password" placeholder="Пароль" required />
</div>
<br>
<input type="submit" value="Авторизация" class="btn"/>
<br>
<br>
<a href="/creatUser.html/">
<button name="registr" type="button" class="btn"/> Регистрация </button>
</a>
</div>
</form>
</body>
</html>
Используйте редирект:
from django.shortcuts import redirect
def auth(request):
"""Процесс аутентификации пользователя."""
if request.method == 'POST':
login = request.POST.get("login")
password = request.POST.get("password")
pswHash = sha256(password.encode('utf-8')).hexdigest()
user = User.objects.filter(login=login, password=pswHash)
if user: # Если логин и пароль существуют, то переходим на основную форму, это процесс авторизации.
return redirect('viewBirds')
elif login is not None:
ErorrMessage = "Неправильный логин или пароль."
return render(request, 'auth.html/', {"Error": ErorrMessage})
return render(request, 'auth.html/')