당신은 멋쟁이, 우리는 장고쟁이~

0%

Django Forms 15편 - 폼 템플릿 작업하기-3

Rendering form error messages


폼에 에러 메시지들을 출력해줄수 있습니다. 하지만, 물론 이 부분은 유연한 추가 작업일 뿐입니다.


현재까지 우리는, 폼 에러들을 어떻게 출력해주어야 하는지에 대해 걱정하지 않아도 되었었습니다.


이번 예시에서 우리는, 각 필드에서 발생하는 에러와 폼 전체에서 발생하는 에러에 대해서 어떻게 관리 해야 하는지에 대해서 다룹니다.


1
2
3
4
5
6
7
8
# {{ form.non_field_errors }} 가 폼의 가장 상단에 위치하고, 템플릿은 각 필드에 error 들을 조회 한다는것을 숙지 합니다 

# {{ form.필드명.errors }} 를 사용하면, 폼 에러의 리스트를 출력해 줍니다. 이는 순서가 정해지지 않은 unordered list 로 렌더 됩니다
아래와 같이 보여질수 있습니다.

<ul class="errorlist">
<li>Sender is required.</li>
</ul>

해당 리스트는 errorlist 의 CSS 클래스를 가지고, 모양을 스타일링 할수 있게 해줍니다. 만약, 여러분들이 조금 더 출력 된 에러들을 커스터마이즈 하고 싶다면, 반복문을 사용하여 이를 꾸며줄수 있습니다.



1
2
3
4
5
6
7
8
9
{% if form.subject.errors %}
<ol>
{% for error in form.subject.errors %}
<li><strong>{{ error|escape }}</strong></li>
{% endfor %}

</ol>

{% endif %}


필드 에러가 아닌것 (그리고 혹은, form.as_p) 를 사용하여, 폼의 상단에 렌더된 숨겨진 필드 에러들은 추가적인 nonfield 클래스와 함께 렌더가 됩니다.


이는, 특히 필드 특화된 에러들과의 구분을 도와줍니다. 예를들면,


1
2
3
<ul class="errorlist nonfield">
<li>Generic Validation error</li>
</ul>

The Forms API 를 확인하면, 에러들과, 스타일링 그리고 템플릿 안에서의 폼 속성들에 대한 것들을 확인 할수 있습니다.