如何解决Django不显示Validationerror
我在编码Django时出现错误,未显示验证错误 我不知道为什么django没有显示validationerror。你能帮忙吗?
这是我的form.py文件 这是我拥有表单和验证的表单文件。
django import forms
from django.core import validators
from new_app.models import Names``
from django.shortcuts import render
from django.http import HttpResponse
class Forms(forms.ModelForm):
FirstName = forms.CharField(label='FirstName',widget=forms.TextInput(attrs={"placeholder":"your Name","rows":20,"column":100}))
class Meta():
model = Names
fields = '__all__'
def clean(self):
all_data = super().clean()
firstname= all_data['FirstName']
lastname = all_data['LastName']
a = 1
if firstname in lastname:
raise forms.ValidationError("amazing")
return all_data
这是我的view.py文件 这是我的查看文件
from django.shortcuts import render
from new_app.models import Names
from new_app import formss
from django import forms
# Create your views here.
def index(request):
a = Names.objects.all()
dict = {'write':a}
return render(request,'index.html',context = dict)
def寄存器(请求):
second = formss.Forms()
if request.method == 'POST':
form = formss.Forms(request.POST)
if form.is_valid():
form.save(commit=True)
return index(request)
else:
second = formss.Forms()
return render (request,'forms.html',context = {'form':second} )
这是我的form.html模板文件...
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<title>Login or Sign up</title>
</head>
<body>
<div class="container">
<div class="jumbotron">
<h1> Sign up</h1>
</div>
</div>
<div class="container">
<div class="first">
<form class="form-horizontal" method="post">
{{form.as_p}}
{% csrf_token%}
<input type="submit" class="btn btn-primary" value="Submit">
</form>
</div>
</div>
</body>
</html>
解决方法
您需要将错误标签添加到模板中才能查看验证错误:
{% if form.errors %}
{% for field in form %}
{% for error in field.errors %}
<div class="alert alert-danger">
<strong>{{ error }}</strong>
</div>
{% endfor %}
{% endfor %}
{% for error in form.non_field_errors %}
<div class="alert alert-danger">
<strong>{{ error }}</strong>
</div>
{% endfor %}
{% endif %}
您还需要确保呈现原始的完整表单,以显示错误。
def register(request):
if request.method == 'GET':
form = formss.Forms()
if request.method == 'POST':
form = formss.Forms(request.POST)
if form.is_valid():
form.save(commit=True)
return index(request)
return render (request,'forms.html',context = {'form':form} )
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。