2017-04-26 6 views
0

Django 1.10を使用していて、テンプレート内のフォームのエラーコードをチェックする方法を探しています。だから、errors.as_dataやerrors.as_jsonのようなものをいくつか試しましたが、javascript以外では異なる値を解析できませんでした。このようなものでしょうか?テンプレート内のDjangoチェックフォームのエラーコード

<p>{% for key, value in form.errors.items %} 
        {{ value }} 
        {% if code == 'inactive_account'%} 
         // do some stuff 
        {% endif %} 
       {% endfor %} 
</p> 

しかし、このエラーコードを取得する方法はわかりません。なにか提案を ?

PS:私が知っているのは、ビューの内部で解決することですが、既にジャンゴ製のものを使用しているので、私はそれをしたくないです。

答えて

1

辞書form.errorsにはValidationErrorのインスタンスが含まれていません。 as_dataメソッドを使用する必要があります。

各キーのエラー一覧をループして、コードを確認する必要があることに注意してください。

{% for key, key_errors in form.errors.as_data.items %} 
    {{ key }} 
    {% for error in key_errors %} 
     {% if error.code == 'inactive_account'%} 
     // do some stuff 
     {% endif %} 
    {% endfor %} 
{% endfor %} 
+0

ありがとう、ありがとう!まさに私が探していたもの。私がちょうど "初心者"の質問をするかもしれない場合、 "form.errors.as_data.items"の ".items"は何ですか?それはどこから来たのですか ? – Davezedave

+0

'form.errors.as_data()'メソッドはディクショナリを返します(Djangoテンプレートではカッコは含みません)。次に、['items'](https://docs.python.org/3/library/stdtypes.html#dict.items)はすべてのPython辞書のためのメソッドです。これを使用して、辞書のキーと値をループさせます。 – Alasdair

+0

ありがとう、もう一度!私はプログラミングには新しくないが、Pythonにはとても新しいので、これらの概念を教えてくれてありがとう。 – Davezedave

関連する問題