django表示错误未显示

时间:2010-10-02 15:03:28

标签: django forms

我正在尝试创建一个表单。这是我的表单类:

class RegisterForm(forms.Form):
login=forms.CharField(min_length=5,max_length=15)
password=forms.CharField(min_length=5,max_length=15,widget=forms.PasswordInput)
passwordConfirmation=forms.CharField(min_length=5,max_length=15,label="Re enter password",widget=forms.PasswordInput)
email=forms.EmailField(min_length=5,max_length=20)
question=forms.CharField(min_length=8,max_length=20,label="Security question")
answer=forms.CharField(min_length=5,max_length=20,widget=forms.PasswordInput)
answerConfirmation=forms.CharField(min_length=5,max_length=20,label="Re enter answer",widget=forms.PasswordInput)'

现在我按照以下方式进行了修改:

{% if form.login.errors %}
{{ form.login.errors }}
{% endif %}
{{ form.login }}<label for="login">Enter desired login</label><br />

依此类推,我只是将form.name等改为form类中的一个。 当我填写表格不正确我不会得到任何错误或没有任何空白表格。我犯了哪个错误?谢谢你的帮助 编辑: 对不起,我忘了在这里展示我的功能

def register(request):
if request.method == 'POST':
    form=RegisterForm(request.POST)
    if form.is_valid():
        return HttpResponseRedirect('/thanks/register')
    else:
        form = RegisterForm(auto_id=False)
        return render_to_response('misc/register.html',locals(),context_instance=RequestContext(request))
else:
    form=RegisterForm(auto_id=False)
    return render_to_response('misc/register.html',locals(),context_instance=RequestContext(request))

2 个答案:

答案 0 :(得分:2)

form = RegisterForm(auto_id=False)

在此行中,您将创建新的空白表单,并且所有验证错误都将丢失。评论它。

答案 1 :(得分:1)

您已在第一个else子句中重新声明了表单,因此您已覆盖错误。完全删除else子句,将最后一行返回一个缩进,这样当公司无效时就会捕获该情况。