python - Django form.is_valid 总是返回 true

标签 python django validation

我是 Django 和 python 的新手,正在尝试从书中学习它。在下面的代码中,我试图确保password1和password2相同,但它似乎没有运行clean_password2验证,因为即使它们具有不同的值,它也总是返回true。

import re
from django.contrib.auth.models import User
from django import forms

class RegistrationForm(forms.Form):
    username = forms.CharField(label=u'Username', max_length=30)
    email = forms.EmailField(label=u'Email')
    password1 = forms.CharField(
        label= u'Password',
        widget = forms.PasswordInput()
    )
    password2 = forms.CharField(
        label= u'Password (Again)',
        widget = forms.PasswordInput()
    )

    def clean_password2(self):
        password1 = self.cleaned_data.get('password1')
        password2 = self.cleaned_data.get('password2')

        if password1 != password2:
            raise forms.ValidationError('Passwords do not match.')
        return password2

最佳答案

如果您要清理两个相互依赖的字段,则应覆盖表单的 clean() 方法。您可以阅读更多here .

关于python - Django form.is_valid 总是返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5875950/

相关文章:

database - 用于保存 django 模型的单独线程

python - Django 如何处理 AutoField 主键的增量?

python - 使用 PIL 将以不同像素保存的复制图像复制到原始图像

python - 从 pandas 中的列索引位置检索日期并粘贴到 PyQt 中

python - 如果将 QThread 创建为局部变量,为什么 QThread 的行为会有所不同

django.core.exceptions.FieldError : Unknown field(s) (body ) specified for Comment

java - 保存到数据库之前检查表单输入的大小

iphone - 如何在 UITextfield 验证中避免特殊字符(@、#、& 等)

java - 全局形式:errors field sequence

python - 绘制空心星号正方形