python - 当在字段中输入按钮单击按钮时,Django UserCreationForm 没有响应
问题描述
我无法让我在 Django 中的注册应用程序正常工作。我正在使用内置的 UserCreationForm 表单。我可以转到 URL 并显示表单,但是当我将信息放入字段并单击提交按钮时,没有任何反应。它应该会弹出一个错误屏幕,显示“缺少 csrf_field”(我知道这一点是因为我正在关注 TechWithTim 的教程,而这就是发生在他身上的事情)。但是当我点击“注册”按钮时,什么也没有发生。
视图.py:
from django.shortcuts import render
from django.contrib.auth.forms import UserCreationForm
# Create your views here.
def register(response):
form = UserCreationForm()
return render(response, "register/register.html", {"form":form})
注册.html:
{% extends "main/base.html" %}
{% block title %}Create an Account{% endblock %}
{% block content %}
<form method="POST" class="form-group">
{{form}}
<button type="submit" class="btn btn-success">Register</button>
</form>
{% endblock %}
网址.py:
from django.contrib import admin
from django.urls import path, include
from register import views as v
urlpatterns = [
path('', include("main.urls")),
path("register/", v.register, name="register"),
path('admin/', admin.site.urls),
]
主/urls.py
from django.urls import path
from . import views
urlpatterns = [
path("<int:id>", views.index, name='index'),
path("", views.home, name='home'),
path("create/", views.create, name='create'),
]
我也将应用程序添加到了我的 settings.py 文件中。
这是我在这里的第一个问题,我试图正确格式化它,如果我没有,很抱歉
解决方案
为了让 Django 接收用户在表单中输入的数据,您需要将请求的 POST 数据传递给表单(如果存在)。看起来像这样:
form = UserCreationForm(response.POST)
但请注意,response.POST
如果它不是 POST 请求,它将不存在。(例如,如果用户是第一次查看表单。)Django 文档有一个如何处理表单数据的示例。
或者,您可以查看您正在使用的教程,其中包含如何从表单中获取 POST 数据的示例:
# views.py
from django.shortcuts import render, redirect
from .forms import RegisterForm
# Create your views here.
def register(response):
if response.method == "POST":
form = RegisterForm(response.POST)
if form.is_valid():
form.save()
return redirect("/home")
else:
form = RegisterForm()
return render(response, "register/register.html", {"form":form})
(来源。)
推荐阅读
- java - 这个对象是如何从它的接口创建的?
- c - 在执行基本 OpenMP (C) 程序期间没有响应
- reactjs - 模态组件 - 如何包含和打开/关闭另一个组件
- javascript - 反应点击处理程序不起作用并将 on="[object Object]" 写入 DOM
- mysql - MySQL 查询仅选择一个条目
- php - 在 Laravel 迁移中创建外键
- docker - Kafka Broker 找不到集群 id 并在 docker restart 后创建新的
- wordpress - 您无权访问此资源。服务器无法读取 htaccess 文件,拒绝访问以确保安全
- c# - 尝试在 vb.net 中使用的 PDF 打印库问题
- html - 有没有办法在表头内部实现三个表数据?