我正在尝试创建一个表单。这是我的表单类:
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))
答案 0 :(得分:2)
form = RegisterForm(auto_id=False)
在此行中,您将创建新的空白表单,并且所有验证错误都将丢失。评论它。
答案 1 :(得分:1)
您已在第一个else子句中重新声明了表单,因此您已覆盖错误。完全删除else子句,将最后一行返回一个缩进,这样当公司无效时就会捕获该情况。