2017-04-26 1 views
0

Django 1.10을 사용하고 있는데 템플릿의 내부에서 양식의 오류 코드를 검사하는 방법을 찾으려고합니다. 그래서 errors.as_data 또는 errors.as_json과 같은 몇 가지 시도를했지만 자바 스크립트를 사용하지 않고 다른 값을 구문 분석 할 수 없었습니다. 이런 식으로 할 수 있을까요?템플릿의 Django check form 오류 코드

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

하지만이 오류 코드를받는 방법을 모르겠습니다. 어떠한 제안 ?

추신 : 해결책은보기 내부에서 수행하는 것이지만 나중에 장고를 사용하기 때문에이를 수행하지 않는 것이 좋습니다.

답변

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)는 모든 파이썬 사전을위한 방법입니다. 사전의 키와 값을 함께 순환하기 위해이 키를 사용합니다. – Alasdair

+0

다시 한 번 감사드립니다! 나는 프로그래밍에 익숙하지 않지만 파이썬에 대해서는 매우 새로운 것이므로 이러한 개념을 말해 주셔서 감사합니다. – Davezedave