使用表单的模板表单中未发现验证错误



验证错误以前没有显示,当我使用表单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>

手动呈现字段时,您负责显示错误消息。

https://docs.djangoproject.com/en/3.1/topics/forms/#rendering-表单错误消息

最新更新