2016-04-29 10 views
1

を返します。エラーはコンソールに表示されますが、テンプレートでは何も実行されません。インラインフォーム検証は、私は、次のインラインフォームセットを持って、空のformset.errorsリスト

これが私のテンプレートです:

{% for field in formset %} 
{{ formset.management_form }} 
    <tr> 
     <td><label>{{ field.name.label }}</label></td> 
      <td> 
       {% if field.instance.pk %}{{ field.DELETE }}{% endif %} 
       {{ field.name }} 
       {{ formset.errors }} 
       {{ field.id }} 
       {% for hidden in formset.hidden_fields %} 
       {{ hidden }} 
       {% endfor %} 
      </td> 
    </tr> 
{% endfor %} 

{{ formset.errors }}も、フォームの送信前に、[]を表示します。

私は間違っていますか?ありがとう。

+0

? –

+0

「ビュー」部分の下部に、編集@DanielRosemanを参照してください。 –

答えて

1

あなたはformsetレンダリング:

return render(request, 'create_client.html', {'form' : form, 'formset' : formset}) 

が、あなたのフォームデータ/エラーでロードされた一つがclient_formsetです:

print client_formset.errors 

あなたが{{ formset.errors }}を使用しているので、あなたがレンダリングに合格する必要があります秒1あなたのテンプレート。

2

が、私はこのようにそれを解決:

if client_formset.is_valid(): 
    client_saved.save() 
    client_formset.save() 

    return redirect(clients) 
else: 
    print client_formset.errors 
    return render(request, 'create_client.html', {'form' : form, 'formset' : formset, 'formset_errors' : client_formset.errors}) 

、テンプレートで

テンプレートを表示するビューの一部である
{% for field in formset %} 
    <tr> 
     <td><label>{{ field.name.label }}</label></td> 
     <td> 
      {% if field.instance.pk %}{{ field.DELETE }}{% endif %} 
      {{ field.name }} 
      {% if formset_errors %} 
       {% for errors in formset_errors %} 
        {% for error in errors.values %} 
         {{ error }} 
        {% endfor %} 
       {% endfor %} 
      {% endif %} 
      {{ field.id }} 
      {% for hidden in formset.hidden_fields %} 
       {{ hidden }} 
      {% endfor %} 
     </td> 
    </tr> 
{% endfor %} 
関連する問題