Python 德扬戈:干净的房间里发生了奇怪的事情_
所以这真的很奇怪。当我清理电子邮件时,我会收到一个错误,然后它会为emailConfirm打印“无”。当我做清洁时,它工作得非常好。出于某种原因,我得到了不同的结果,尽管我唯一要更改的是函数的名称(clean_email到clean_emailConfirm)。有人知道为什么吗Python 德扬戈:干净的房间里发生了奇怪的事情_,python,django,Python,Django,所以这真的很奇怪。当我清理电子邮件时,我会收到一个错误,然后它会为emailConfirm打印“无”。当我做清洁时,它工作得非常好。出于某种原因,我得到了不同的结果,尽管我唯一要更改的是函数的名称(clean_email到clean_emailConfirm)。有人知道为什么吗 class SignUpForm(forms.ModelForm): fname = forms.CharField(max_length=256, label="", required=True, widget
class SignUpForm(forms.ModelForm):
fname = forms.CharField(max_length=256, label="", required=True, widget=forms.TextInput(attrs={'class': 'form-control','placeholder': 'First Name','required':True}))
lname = forms.CharField(max_length=256, label="", required=True, widget=forms.TextInput(attrs={'class': 'form-control','placeholder': 'Last Name','required':True}))
email = forms.EmailField(max_length=256, label="", required=True, widget=forms.EmailInput(attrs={'class': 'form-control','placeholder': 'Email','required':True}))
emailConfirm = forms.EmailField(max_length=256, label="", required=True, widget=forms.EmailInput(attrs={'class': 'form-control','placeholder': 'Email','required':True}))
password = forms.CharField(max_length=256, label="", required=True, widget=forms.PasswordInput(attrs={'class': 'form-control','placeholder': 'Password','required':True}))
datetime = forms.DateTimeInput()
class Meta:
model=SignUp
fields=['fname','lname','email','emailConfirm','password']
# def clean_email(self):
# email=self.cleaned_data.get('email')
# emailConfirm=self.cleaned_data.get('emailConfirm')
# if email != emailConfirm:
# #print(cleaned_data2)
# print(email)
# print(emailConfirm)
# raise forms.ValidationError("Your two emails must be the same!")
# else:
# return email
def clean_emailConfirm(self):
email=self.cleaned_data.get('email')
emailConfirm=self.cleaned_data.get('emailConfirm')
if emailConfirm != email:
#print(cleaned_data2)
print(email)
print(emailConfirm)
raise forms.ValidationError("Your two emails must be the same!")
else:
print(emailConfirm)
print(email)
return email
您不能交叉验证
clean\u foo
方法中的字段,因为当您在其中一个方法中时,并不是所有字段的clean\u foo
方法都被调用,因此表单中可能有一些值尚未填充。应采用clean
方法进行。非常明确地记录了这一点:
在调用表单的clean()方法时,所有
现场清理方法已经运行(前两部分),因此
self.cleaned_数据将填充到所有保存至今的数据中
远的因此,您还需要记住,考虑到以下事实:
您要验证的字段可能没有在初始验证中保留下来
个别现场检查
您不能交叉验证
clean\u foo
方法中的字段,因为当您在其中一个方法中时,并不是所有字段的clean\u foo
方法都被调用,因此表单中可能有一些值尚未填充。应采用clean
方法进行。非常明确地记录了这一点:
在调用表单的clean()方法时,所有
现场清理方法已经运行(前两部分),因此
self.cleaned_数据将填充到所有保存至今的数据中
远的因此,您还需要记住,考虑到以下事实:
您要验证的字段可能没有在初始验证中保留下来
个别现场检查