我如何验证表单中的标识字段上的表单上的字段。 Django的

时间:2014-05-18 17:28:13

标签: django forms validation

如何在没有POST请求的情况下立即在表单中的身份字段上的表单上验证字段?

我在模特中的字段:

password = models.CharField(max_length=45, verbose_name="")
password2 = models.CharField(max_length=45, verbose_name="")

和我的字段:

'password': widgets.PasswordInput(attrs={'placeholder': 'New Password'}),
'password2': widgets.PasswordInput(attrs={'placeholder': 'Re-Entere Password'}),

这是我尝试过的代码:

def clean_password(self):
password1 = self.cleaned_data.get('password')
password2 = self.cleaned_data.get('password2')
if not password2:
    raise forms.ValidationError("You must confirm your password")
if password1 != password2:
    raise forms.ValidationError("Your passwords do not match")
return password2 

视野中的代码:

def saves_data_user_on_registration (request):
    if request.method == 'POST':
        c = {}
        c.update(csrf(request))
        form_user_data = Form_registration(request.POST, request.FILES)
        if form_user_data.is_valid():
            print form_user_data.errors
            form_user_data.save()
            return render_to_response('see_you_later.html', c, context_instance=RequestContext(request))
        else:
            print form_user_data.errors
            return render_to_response('error.html', c, context_instance=RequestContext(request))

1 个答案:

答案 0 :(得分:0)

我想在验证期间访问两个字段,您需要使用clean()而不是clean_myfield()

检查文档。

“没有POST请求?”是什么意思?

我永远不会通过GET接受密码。 HTTP GET请求存储在代理和缓存中!