NoReverseMatch 在/login.html/

问题描述 投票:0回答:1

这是 html 表单。我在 html 中添加了 action="{% url 'create_user_view' %}" 但错误提示它不是有效视图。

{% extends 'base.html' %}
2   
3   {% block content %}
4   
5   
6       <div class="formbox">
7           <form method="post" action="{% url 'create_user_view' %}">
8               <h1 class="max"> Sign up </h1>
9               <input type ="text" class="max" id="fname" placeholder="username" name="username">
10              <br>
11              <input type="email" class="max" id="email" placeholder="email" name="email">
12              <br>
13              <input type="password" class="max" id="password" placeholder="password" name="password">
14              <br>
15              <input type="submit" name="submit" class="max" placeholder="SUBMIT" id="submitid" formaction="logbook.html">
16              <br>
17              <a href="home.html" id="links">already have an account?</a>

下面是 views.py 文件。我在 views.py 文件中创建了一个名为 create_user_view 的视图。 但是,html 表单操作没有找到名为 create_user_view 的有效视图。

from django.shortcuts import render

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


# Create your views here.

def home_screen_view(request):
    print(request.headers)
    return render(request, "personal/home.html",{})

def login_view(request):
    print(request.headers)
    return render(request,"personal/login.html",{})


def create_user_view(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        email = request.POST.get('email')
    
        
        user = User.objects.create_user(username=username, password=password, email=email)
        # You can add additional fields to the User model as needed
        
        # Redirect to a success page
        return redirect('success')
        
    # If the request method is not POST, render the form
    return render(request, "create_user.html")

这是urls.py文件

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

from personal.views import(
    home_screen_view, login_view,create_user_view,
    )

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", home_screen_view),
    path("login.html/", login_view),
    path("create_user_view/", create_user_view),

]

python django view
1个回答
0
投票

urls标签{% url 'create_user_view' %}引用了urlspattern中的路径名,所以需要加个名字:

urls.py

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", home_screen_view),
    path("login.html/", login_view),
    path("create_user_view/", create_user_view, name='create_user_view'),

]
© www.soinside.com 2019 - 2024. All rights reserved.