Страница не найдена (404) Метод запроса: POST

Я застрял в этой ошибке в течение нескольких дней не могу найти, где ошибка я пытался мой уровень лучшее, чтобы очистить ошибку, но не в состоянии сделать это.

раздел просмотров

from django.shortcuts import render,redirect
from django.contrib.auth.models import User,auth

# Create your views here.

def register(request):
    if(request.method=='POST'):
        username=request.POST['username']
        password1=request.POST['password1']
        password2=request.POST['password2']
        user=User.objects.create_user(username=username,password=password1)
        user.save();
        print("user created")
        return redirect('/')
    else:
        return render(request,'registration.html')

секцияurls.py

from django.urls import path
from . import views
urlpatterns=[path('register/',views.register,name="register")]

html раздел

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Registration</title>
</head>
<body>
    <form action="register" method="POST">
        {% csrf_token %}
        USERNAME  <input type="text" name="username" id=""> <br><br>
        PASSWORD  <input type="password" name="password1" id=""> <br><br>
        RETYPE PASSWORD  <input type="password" name="password2" id=""> <br><br>
        <input type="submit" value="">    
    </form>
</body>
</html>

Выпуск

  1. create() является методом, create_user() не является никаким методом.

  2. create() не требует вызова метода save() для создания экземпляра.

  3. Вы дали только action="register", что совсем не верно, вам нужно дать тег url, чтобы идеально сделать маршрут. Это случай для page not found, который является основным вопросом.

Итак, с некоторыми изменениями попробуйте следующий код:

Views.py

def register(request):
    if(request.method=='POST'):
        username=request.POST['username']
        password1=request.POST['password1']
        password2=request.POST['password2']
        user=User(username=username,password=password1)
        user.save()
        print("user created")
        return redirect('/')
    else:
        return render(request,'registration.html')

Файл шаблона

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Registration</title>
</head>
<body>
    <form action="{% url 'register' %}" method="POST">
        {% csrf_token %}
        USERNAME  <input type="text" name="username" id=""> <br><br>
        PASSWORD  <input type="password" name="password1" id=""> <br><br>
        RETYPE PASSWORD  <input type="password" name="password2" id=""> <br><br>
        <input type="submit" value="Save">    
    </form>
</body>
</html>
Вернуться на верх