这是 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),
]
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'),
]