Django表单未验证

时间:2017-03-30 12:36:40

标签: python django forms

我想实现忘记密码功能。在我的验证码功能中,表单未验证。 这是我的意见文件:

def getVerCode(request):
    if (request.method == 'POST'):
        form = VerCodeForm(request.POST)
        print(form.errors)
        if (form.is_valid()):
            print('VALID')
            code = request.POST.get('verCode', '')
            print('GETVERCODE : ', verCode)
            if (code == verCode):
                pass
            return HttpResponseRedirect('/custom/GetPassword', {'form': form})
    else:
        form = VerCodeForm()
    return render_to_response('EmailVerification.html', {'form': form})

模板:

{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'FormStyle.css' %}" />

{% block body %}
    <div class = "formArea"> {% csrf_token %}
        <label> Enter the verification code sent to your email account: </label>
        {{ hidden_email }}
        <div class="formFields">
            <form method="POST">
                <input type="text" name = "email" size="50"> </input>
                {{ form.verCode.errors }}
                <input type="submit" value="Submit">
            </form>
        </div>
    </div>
{% endblock %}

形式:

class VerCodeForm(forms.Form):
    verCode = forms.CharField(max_length = 10)

我试图打印form.errors:

它说 这个领域是必需的!

2 个答案:

答案 0 :(得分:1)

您未正确命名模板上的输入。它应该是:

<input type="email" size="50" name="verCode"> </input>

答案 1 :(得分:0)

如果您使用循环来生成模板中的字段,那么更好的方法就是。

检查出来:

{% for field in form %}
<div> 
<label>{{field.label_tag}}</label>
<div> {{field}} </div>
</div>
{% endfor %}

这将有助于您将来防止这些错误,并在模板中编写更少的代码。