Django表单即使在应该返回验证错误时也不返回验证错误?

Django表单即使在应该返回验证错误时也不返回验证错误?,django,forms,django-forms,validationerror,Django,Forms,Django Forms,Validationerror,在控制台中,我可以看到它打印了“Less”字符串,这意味着控件将进入“if len(f_N)15: self.add_错误('firstName','允许的最大长度为15个字符') 如果len(f_N)

在控制台中,我可以看到它打印了“Less”字符串,这意味着控件将进入“if len(f_N)<2”中,但是没有打印验证错误。请帮我找出密码有什么问题

####My forms.py文件:####

请参阅本主题

forms.py
中,您从django.core.exceptions导入了
ValidationError
的方法是正确的
。异常导入了ValidationError
,但随后您在函数
clean_firstName()
中以错误的方式引发了它

    raise ValidationError('..')
而不是

    raise forms.ValidationError('..')
更新 在
views.py
中,由于您有
form_1=UserRegistrationForm(request.POST)
,因此应该将
form_1
传递到
render
语句中的上下文,而不是
form
。任何你能以正确方式做事的方法(你不再需要第二张
表格了):

def UserRegistrationView(请求):
表单=用户注册表单()
if request.method==“POST”:
表单=用户注册表单(request.POST)
如果form.is_有效():
user=form.save(commit=False)
user.save()
#注:
# 1. 如果“form.is_valide()”返回false,则
#获取“form.errors”包中的错误。
# 2. 您不需要导入用户模型,因为您正在使用“formMdel”
#如果成功保存,可能需要重定向到主页
#新用户。。显示一条闪光消息。。
返回呈现(请求,'formsDemo/userRegistration.html',{'form':form})
请参阅此图图

尝试添加如下表单错误:

def clean_firstName(self):
f_N=自清理的_数据['firstName']
打印(f_N)
如果len(f_N)>15:
self.add_错误('firstName','允许的最大长度为15个字符')
如果len(f_N)<2:
印刷品(透镜(f_N))
打印(“减少”)
self.add_错误('firstName','minlength showuld为2个字符')
其他:
打印(“结束”)
返回f\N

还要确保始终返回已清理的
名字,因为使用当前代码,某些路径将不会返回该名字。因此,为了解决这个问题,只要在所有
if
s的
return f_N
之外添加一个
return f_N

尝试了您的建议。但仍然面临同样的问题。浏览器中没有错误。HTML代码有任何问题吗???@ArghyaBhattacharya我更新了我的答案,请告诉我它是否有效。@cizaro在模板中添加了此代码段。仍然没有显示出错误。如果有必要,我正在使用Django 3.1.4。@ArghyaBhattacharya第二次更新
from django.shortcuts import render
from .forms import UserRegistrationForm
from .models import User
# Create your views here.
def UserRegistrationView(request):
    form=UserRegistrationForm()
    if request.method=='POST':
        form_1=UserRegistrationForm(request.POST)
        if form_1.is_valid() :    
            #print(form_1.cleaned_data)
            form_1=form_1.cleaned_data 
            print(request.POST)
            print(form_1)
            user_1=User()
            user_1.firstName=form_1['firstName']
            user_1.lastName = form_1['lastName']
            user_1.email = form_1['email']
            user_1.save()
        
    return render(request,'formsDemo/userRegistration.html',{'form':form})
    raise ValidationError('..')
    raise forms.ValidationError('..')