表单对象在django中没有属性'isValid'

时间:2013-07-07 15:46:14

标签: python django django-forms django-templates django-views

如果我打印request.POST.usernamerequest.POST.password,我会获得正确的数据。但我无法验证表格。我无法得到cleaned_data

views.py

def login(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.isValid():
            print "coming"
        return render_to_response('html/index.html')
    else:
        form = LoginForm()
        c = {'logInForm': form, }
        return render_to_response('html/index.html', c, RequestContext(request))

forms.py

from django import forms
class LoginForm(forms.Form):
    username = forms.EmailField()
    password = forms.CharField(max_length=50)

的index.html

<!DOCTYPE html>
<html>
<head>
    .....
</head>
<body>

<div class="container">

    <form class="form-signin" action="login" method="post">{% csrf_token %}
        {{ logInForm.as_p }}
        <input type="submit" value="Submit"/>
    </form>
</div> 
</body>
</html>

2 个答案:

答案 0 :(得分:7)

您没有正确使用该方法。正确的方法是is_valid

Django Docs

def login(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid(): # <<<< Correct!
            print "coming"
        return render_to_response('html/index.html')

答案 1 :(得分:2)

正确的方法名称是is_valid