python - 使用 django usercreationform 的问题,而不是在 HTML 中呈现表单
问题描述
我使用 UserCreationForm 在 django 项目中创建了一个注册页面,但是在渲染我的 html 时,我只看到提交按钮
from django.shortcuts import render
from django.contrib.auth.forms import UserCreationForm
def register(request):
form = UserCreationForm
return(render(request, 'register.html', {form: form}))
{% extends 'base.html' %}
{% block title %}Sign Up{% endblock %}
{% block body %}
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="button">
<button type="submit">Sign up</button>
</form>
{% endblock %}
解决方案
您不能使用表单作为上下文的键,您应该使用'form'
. 此外,传递对类的引用不是一个好主意,您应该在视图中创建表单的实例,因此:
from django.shortcuts import render
from django.contrib.auth.forms import UserCreationForm
def register(request):
form = UserCreationForm()
# use 'form' instead of form ↓ ↓
return render(request, 'register.html', {'form': form})
如果您使用了表单对象,而不是对类的引用,则会引发 aForm
不可散列的错误。但是由于您使用了对表单类的引用,因此没有错误,因此仍未检测到。
推荐阅读
- rest - 为首次登录创建用户记录/个人资料
- google-cloud-platform - 如何在不下载本地的情况下将图像从公共数据库传输到 Google Cloud Bucket
- php - 在类别页面的价格下添加产品重量
- php - 当php中没有内容时更改背景颜色
- java - 是否可以在 Artemis JMS 中插入一批消息
- angular - 使用量角器在带有 ag-grid 的角度站点上查找元素的问题
- macros - 如何将函数条件的符号传递给宏
- data-science - 数据类型以及 rapidminer 如何强调它们
- php - PHP curl 响应错误 - “无法识别的令牌”
- jquery - 如何通过确认模式JQuery Flask传递选中的复选框列表