【发布时间】:2020-12-29 22:40:16
【问题描述】:
验证错误之前也没有显示,当我使用表单 api 创建表单时,我发送错误,但没有出现在 html 中,现在也当使用 UserCreationForm 创建用户时,现在在 html 中也没有出现错误,在没有填写单个字段的情况下提交此表单。
views.py 文件
from django.shortcuts import render
from .forms import signup
# Create your views here.
def sign_up(request):
fm = signup()
if request.method == 'POST':
fm = signup(request.POST)
if fm.is_valid() :
print('until this runs')
fm.save()
else:
fm = signup()
print(fm.errors)
return render(request, 'at/signup.html', {'form': fm})
forms.py 文件
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
class signup(UserCreationForm):
class Meta:
model=User
fields=['username','first_name','last_name','email']
html文件
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="UTF-8">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous">
<title>Form</title>
</head>
<body>
<div class="container" >
{{ form.non_field_errors }}
<form method="post" novalidate>
{% csrf_token %}
{{ fms.as_p }}
<button class="text-center btn btn-primary" type="submit">SUB</button>
</form>
</div>
</body>
</html>
也试过这个 html 代码,但没有看到错误
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>user regisration</title>
</head>
<body>
{{ form.non_field_errors }}
{% if messages %}
<ul>
{% for message in messages %}
<li>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
{{ form.non_field_errors }}
<form action="" method='POST' novalidate>
{% csrf_token %}
{% for fm in form %}
{{fm.label_tag}} {{fm}} {{fm.errors|striptags}} <br> <br>
{% endfor %}
<input type="submit" value='submit'>
</form>
</body>
</html>
【问题讨论】:
标签: django django-models django-forms django-templates