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

0%

Django Forms 17편 - 폼 템플릿 작업하기-5

Looping over hidden and visible fields


만약 여러분들이 수동으로 폼을 템플릿안에서 레이아웃을 잡는 작업을 하고 있다면, Django 의 기본 폼 레이아웃과는 반대되게, <input type="hidden"> 을 사용하여, 숨김처리가 되지 않은 필드들과 다르게 사용할수 있습니다.


예를들면, 숨겨진 필드들은 아무것도 출력하지 않기 때문에, 에러 메시지들을 해당 필드 옆에 출력 한다는것은 사용자들에게 혼란을 일으킬수 있을것입니다. 따라서, 이런 필드들의 에러들은 다른 방식으로 다루어 져야 합니다.


Django 는 숨겨진 필드와 노출된 필드들을 따로 반복할수 있게 해줍니다.


바로, hidden_fields() 와 visible_fields()


아래 예시를 참고합니다.



1
2
3
4
5
6
7
8
9
10
11
{# Include the hidden fields #}
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
{# Include the visible fields #}
{% for field in form.visible_fields %}
<div class="fieldWrapper">
{{ field.errors }}
{{ field.label_tag }} {{ field }}
</div>
{% endfor %}

위의 예시는, 숨겨진 필드들 안에 있는 어떤 에러도 다루지 않습니다. 보통은, 숨겨진 필드안에 있는 에러는 폼 변조를 의미할수 있습니다. 보통 폼 동작은 폼을 바꾸지 않습니다.