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

0%

Django Forms 16편 - 폼 템플릿 작업하기-4

Looping over the form’s fields


만약 여러분들이 각 폼 필드들을 위해 같은 HTML 테그들을 사용하고 있다면, 반복되는 코드들을 줄일수 있습니다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 반복문을 사용하여 반복되는 코드를 줄일수 있습니다 
# {% for %}

# 예시

{% for field in form %}
<div class="fieldwrapper">
{{ field.errors }}
{{ field.lable_tag }} {{ field }}
{% if field.help_text %}
<p class="help">
{{ field.help_text|safe }}
</p>
{% endif %}
</div>

{% endfor %}

반복문이 실행될때마다, 각 필드에서 사용할수 유용한 속성들이 존재 합니다.


1
2
3
4
5
6
7
8
# {{ field }} 가 포함하고 있는 유용한 속성들은 

# {{ field.lable }} 필드의 레이블을 표시합니다. 예) Email Address

# {{ field.label_tag }}
# 필드의 label 이 적절한 HTML <label> 태그로 감싸집니다. 이는 form 의 label_suffix 를 포함합니다. 예를들면, labe_suffix 의 기본값은 콜론입니다.

<lable for="id_email">Email address:</lable>


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# {{ field.id_for_label }}
# 이 필드를 위해 사용될 ID (위 예시에서는 id_email).
# 만약 여러분들이 label 을 수동으로 만들고 있다면, 이것을 label_tag 대신에 사용할수 있습니다
# 이것또한 유용하게 사용될수 있습니다.
# 예를들면, 여러분들이 인라인 JavaScript 를 가지고 있고, 필드의 ID 를 하드코딩 하는것을 피하고
# 싶을때처럼 말이죠

# {{ field.value }}
# 필드의 값 예) someone@example.com

# {{ field.html_name }}
# 인풋 요소의 이름 필드에 사용될 필드의 이름, 설정 되어 있다면, 폼의 접두사를 고려합니다

# {{ field.help_text }}
# 필드와 관련된 hep text

# {{ field.errors }}
# 필드에 해당하는 유효성 혹은 검증 에러를 가지고 있는 <ul class-"errorlist">를 출력합니다
# 에러의 모습을 {% for error in field.errors %} 반복문을 사용하여, 커스터마이즈 할수 있습니다.
# 이 경우에는, 반복문안에 각 객체들은 에러 메시지를 포함하고 있는 문자열이 됩니다.

# {{ field.is_hidden }}
# 만약 필드가 숨겨진 필드라면 True 를 반환하고, 숨겨져 잇지 않다면 False 를 반환합니다
# 이것은 특출나게 템플릿 변수로써 유용하지 않습니다. 하지만 아래 예시같이 조건적인 테스트에서는
# 유용할수 있습니다

{% if field.is_hidden %}
{% endif %}

# {{ field.field }}
# 폼 클래스로부터 필드 인스턴스로 BoundField 로 감싸집니다.
# Field 속성들을 엑세스하기 위해 사용합니다. 예) {{char_field.field.max_length}}