2011-08-21 60 views
1

用户提交表单并且未填写必填字段时,我试图丢弃'所需字段'消息。
正在发生的事情是,即使在提交表单之前,仍然显示错误。提交后不应该进行验证?提交表单之前“字段为必填信息”

我有以下形式:

class LookforPlace(forms.Form): 
    name = forms.CharField(required=True,max_length=100,label='Name',error_messages = {'required': "This field is required..."}) 
    city = forms.CharField(required=False,label='City') 
    email = forms.EmailField() 

我有以下看法:

def newreview(request): 
    if request.method == 'GET': # If the form has been submitted... 
     form = LookforPlace(request.GET) # A form bound to the GET data 
     if form.is_valid(): # All validation rules pass 
      return HttpResponseRedirect('/newreview/valid') # Redirect after GET 
    else: 

     form = LookforPlace() # An unbound form 
    return render_to_response('newreview.html', { 
     'form': form, 
    }) 

和我有下面的HTML代码:

<form action="/newreview/" method="get"> 
{% for field in form %} 
     <div class="fieldWrapper"> 
      {{ field.errors }} 
      {{ field.label_tag }}: {{ field }} 
     </div> 
    {% endfor %} 
<input type="submit" value="Submit" /> 
</form> 

回答

2

一个GET发出时您通常浏览到页面,而不仅仅是当您使用该方法提交表单时 - 如果您想使用相同的视图来显示初始表格和处理通过GET提交,您应该检查已提交的表单中的值。

一种选择是给提交按钮的名称...

<input type="submit" name="submit" value="Submit"> 

...并检查已提交的名称作为参数(这也是处理多种形式的好办法提交按钮,因为只有被点击的按钮将被视为成功的控件,并在请求中将其名称作为参数提交):

if 'submit' in request.GET: 
    # ... 
+0

非常感谢。我不知道。尽管如此,我想用POST是不一样的。 – Nobita

相关问题