- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 django 中做一些密码确认表单。但我很困惑,因为 self.cleaned_data.get('confirm_password')
总是不返回任何内容,因此我的密码永远不会相互匹配。
这是 forms.py
中的 clean
方法
def clean_password(self):
password = self.cleaned_data.get("password")
confirm_password = self.cleaned_data.get("confirm_password")
if password != confirm_password:
print(password)
print(confirm_password)
raise forms.ValidationError(
"Password and password confirmation does not match"
)
return password
self.cleaned_data.get('password')
返回输入的密码,但confirm_password 不会返回。
在 view.py
中,当我在清理之前看到收到的数据时,confirm_password 显示为原样
......................user = UserRegister(request.POST)
print(request.POST.get('confirm_password'))
if user.is_valid():
print('valid')..........................
这可能是什么原因?
这是forms.py
中的表单声明部分
first_name = forms.CharField(required=True, widget=forms.widgets.TextInput(attrs={'placeholder': 'First Name'}))
last_name = forms.CharField(required=True, widget=forms.widgets.TextInput(attrs={'placeholder': 'Last Name'}))
username = forms.CharField(required=True, widget=forms.widgets.TextInput(attrs={'placeholder': 'Username'}))
email = forms.EmailField( required=True, widget=forms.widgets.EmailInput(attrs={'placeholder': 'Email'}))
password =forms.CharField(required=True, widget=forms.widgets.PasswordInput())
confirm_password =forms.CharField(required=True, widget=forms.widgets.PasswordInput())
class Meta:
model=User
fields=['first_name','last_name','username','email','password','confirm_password']
最佳答案
clean_fieldname
按字段声明顺序调用的方法,因此目前 clean_password
称为 cleaned_data
不包含confirm_password
。您可以在 clean_confirm_password
中执行此验证方法:
def clean_confirm_password(self):
password = self.cleaned_data.get("password")
confirm_password = self.cleaned_data.get("confirm_password")
if password != confirm_password:
print(password)
print(confirm_password)
raise forms.ValidationError(
"Password and password confirmation does not match"
)
return password
或者只使用clean
需要访问多个表单字段的验证方法。
关于python - Django clean_data.get ('obj' )方法返回无,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49958248/
我有一个 model_formset,使用 can_delete=True 创建,并将相应的 form.DELETE 复选框添加到模板中。当我收到 POST 请求时,我尝试保存表单: if forms
我正在 django 中做一些密码确认表单。但我很困惑,因为 self.cleaned_data.get('confirm_password') 总是不返回任何内容,因此我的密码永远不会相互匹配。 这
我创建了一个 inlineformset_factory 如下: formset = inlineformset_factory(Author, Book, form=BookForm,
我正在尝试为我的一门类(class)制作搜索表单。表格的型号是: from django import forms from django.forms import CharField, ModelM
我正在编写 django 教程,并尝试使用 clean_data 属性验证表单。 forms.py 文件的代码是 from django import forms from .models imp
我是一名优秀的程序员,十分优秀!