2011-09-12 9 views
0

私のテンプレートにnon_field_erorsを表示したいとします。これまでのところ、私は私のフォームのエラーのすべての種類を表示することができます。Djangoテンプレートでフィールドエラーが表示されない

- > base.html

{% if form.errors %} 
    {% for field in form %} 
     {% if field.errors %} 
     <div class="ui-state-error ui-corner-all notification" > 
     <p> 
      <span class="ui-icon ui-icon-alert"></span> 
      {{ field.label_tag }}:{{ field.errors|striptags }} 
       <a class="hide" onClick="hideBar(this)">hide</a> 
      </p> 
     </div> 
     {% endif %}        
    {% endfor%} 
{% endif %} 

{{ form.non_field_errors }} 

私が唯一持っている新しいフォームを追加しましたIntegerField:

価格を120として転記すると、私のページに検証エラーはありません。

そして、私の見解は次のとおりです。

def bid(request,product_slug): 
    . 
    . 
    form = MerchantForm() 
    context = RequestContext(request,{ 
       'form':form, 
           .... 
        }) 

    if request.method == 'POST': 
     form = MerchantForm(request.POST) 
     if form.is_valid(): 
      return HttpResponse('ok') 
    #  else: 
    #   return HttpResponse(form.errors.get('__all__')) 
    return render_to_response('bid.html',context_instance=context) 

私はコメント行でエラーを取得することができますが、私はviews.pyでそれを行うにはしたくありません。何か案は ?

答えて

2

おはようございます。

まず、コードはあなたがはっきり投稿スニペットたときに、なぜあなたはについてnon_field_errorsを求めているがclean_priceに提起されているとエラーが発生したので、THS priceフィールドに関連付けられていますか?

第2に、あなたのビューコードは上下が逆です。空のフォームインスタンスを作成し、それをコンテキストに追加します。次にフォームインスタンスを作成し、POSTデータにバインドしますが、コンテキストには入れません。したがって、テンプレートにはバインドされたフォームが表示されることはありません。

関連する問題