2013-05-22 17 views

答えて

6

This sectionは、すべての詳細、すなわち、このスニペットを持っています

{% if form.subject.errors %} 
    <ol> 
    {% for error in form.subject.errors %} 
     <li><strong>{{ error|escape }}</strong></li> 
    {% endfor %} 
    </ol> 
{% endif %} 

テンプレートにフォームクラスを呼び出す何でformを交換してください。この例では、subjectはフォーム内のフィールドです。あなたはすべてのエラーを要約するために、別のセクションを持つようにしたい場合は、フィールドを通じて単にループ:

Form.errors.as_data()

{% if form.errors %} 
    {% for field in form %} 
     {% for error in field.errors %} 
      {{ error|escape }} 
     {% endfor %} 
    {% endfor %} 
{% endif %} 
+1

コードの入力があります。 {%if form.error%} - > {%if form.errors%} – aabele

12

も、この問題を解決することは有用であろうジャンゴ1.7で2つの新しいメソッドがあります。

>>> f.errors.as_data() 
{'sender': [ValidationError(['Enter a valid email address.'])], 
'subject': [ValidationError(['This field is required.'])]} 

Form.errors.as_json()

>>> f.errors.as_json() 
{"sender": [{"message": "Enter a valid email address.", "code": "invalid"}], 
"subject": [{"message": "This field is required.", "code": "required"}]} 
1

特定のフィールドのエラーにアクセスするには、form.field_name.errorsを使用します。ここで、「field_name」はエラーを生成するフィールドの名前です。

フィールドに複数のエラーが生成された場合に備えて、forループを使用するのは依然として有効です。

原油例:

{% for error in form.email.errors %} 
    <label>{{ error|escape }} </label> 
{% endfor %} 
<br> 
<label>Email: </label>{{ form.email }} 

いくつかのエラーは、例えば、2つのパスワードフィールドが一致しない場合に発生するエラー特定の分野に特に関連しないかもしれません。それらは次のようにアクセス可能である必要があります。

{{ form.non_field_errors }} 
関連する問題