Я строил свой первый проект Django, и я делал «страницу входа», и она работает, но когда тогда я поставил условие, что, если вход в систему неправильный, он возвращается кСтраница входа и показывает сообщение об ошибке, и если это правильно, он должен перейти на страницу, где написано «logadissimo», но когда я пытаюсь это последнее, я получаю проблему ниже:
Страница не найдена (404) Метод запроса: GET URL запроса: http://localhost:8000/ Используя URLconf, определенный в sitetcc.urls, Django попробовал эти шаблоны URL в следующем порядке:
admin / login / login /отправить логин / логадо Пустой путь не соответствовал ни одному из них.
Вы видите эту ошибку, потому что у вас есть DEBUG = True в вашем файле настроек Django. Измените это на False, и Django отобразит стандартную страницу 404.
это мой url.py из проекта:
"""
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls.conf import include
from django.urls import path
from core import views
urlpatterns = [
path('admin/', admin.site.urls),
path('login/', views.login_user),
path('login/submit', views.submit_login),
path('login/logado', views.logado)
]
urls.py из приложения:
from . import views
from django.urls import path
app_name = 'core'
urlpatterns = [
path('', views.login_user, name='login'),
path('', views.submit_login, name='submit'),
path('', views.logado, name='logado')
]
views.py:
from django.shortcuts import render, redirect
from django.views.decorators.csrf import csrf_protect
from django.contrib.auth import authenticate, login
from django.contrib import messages
# Create your views here.
def logado(request):
return render(request, 'logado.html')
def login_user(request):
return render(request,'login.html')
@csrf_protect
def submit_login(request):
if request.POST:
username = request.POST.get('username')
password = request.POST.get('password')
print(username)
print(password)
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
return redirect('/logado/')
else:
messages.error(request,'Usuário e senha inválido. Favor tentar novamente:')
return redirect('/login/')
и экран печати со структурой папок и страницей "logado": https://imgur.com/a/xAsBRHO
Спасибо!