Ошибка совпадения текущего пути с любым из этих

обновленный код: я добавил '/' в конце каждого маршрута, после чего шаблон загружается, но не перенаправляет на следующую страницу Ошибка 404 При попытке загрузить страницу входа, регистрации, она показывает Используя URLconf, определенный в loan.urls, Django попробовал эти шаблоны URL, в таком порядке: admin/ [name='index'] login [name='login'] register [name='register'] logout [name='logout'] form [name='form'] predict [name='predict'] Текущий путь, register/, не соответствует ни одному из этих путей. Как я могу решить эту проблему

from django.urls import path
from . import views
urlpatterns = [
    path('', views.index, name="index"),
    path('login', views.login, name="login"),
    path('register', views.register, name="register"),
    path('logout', views.logout, name="logout"),
    path('form', views.form, name="form"),
    path('predict', views.predict, name="predict"),
]
from django.shortcuts import render, redirect
from django.contrib import messages
from django.contrib.auth.models import User, auth
from .models import Prediction
import joblib
import pandas as pd
from sklearn.preprocessing import scale
from sklearn.impute import SimpleImputer

res = 'X'


# Create your views here.
def index(request):
    return render(request, "index.html")


def login(request):
    if request.method == "POST":
         name = request.POST['username']
         pas = request.POST['password']
         user = auth.authenticate(username=name, password=pas)

    if user:
        auth.login(request, user)
        print(user.is_authenticated)
        return redirect("/")
    else:
        messages.info(request, "User does not exist")
        return redirect("login")
else:
    return render(request, "login.html")


 def register(request):
    if request.method == "POST":
         fname = request.POST['first_name']
         lname = request.POST['last_name']
         email = request.POST['email']
         uname = request.POST['username']
         pas1 = request.POST['password1']
         pas2 = request.POST['password2']
   if pas1 == pas2:
        if User.objects.filter(username=uname).exists():
            messages.info(request, "Username already exists")
            return render(request, "register.html")
        elif User.objects.filter(email=email).exists():
            messages.info(request, "Email already exits")
            return render(request, "register.html")
        else:
            user = User.objects.create_user(username=uname, password=pas1, email=email, first_name=fname,
                                            last_name=lname)
            user.save()
            print('User Created')
            return redirect("login")
    else:
        messages.info(request, "Password does not match")
        return render(request, "register.html")
else:
    return render(request, "register.html")

loan.urls

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('user.urls')),
]

user.urls

from django.urls import path
from . import views

path('', views.index, name="index"),
path('login', views.login, name="login"),
path('register', views.register, name="register"),
path('logout', views.logout, name="logout"),
path('form', views.form, name="form"),
path('predict', views.predict, name="predict"),

Вам не хватает / в ваших путях. Старайтесь всегда добавлять его в конец пути:

path('', views.index, name="index"),
path('login/', views.login, name="login"),
path('register/', views.register, name="register"),
path('logout/', views.logout, name="logout"),
path('form/', views.form, name="form"),
path('predict/', views.predict, name="predict"),

Другое дело, что вам не нужна action="register", которая может помешать классическому поведению Django.

Вернуться на верх