Django Snippet - Django form 마크업 하기

1. 개별 필드 렌더링


<form action="" method="post">
{% csrf_token %}
<p class='error'>
<!-- 폼 에러 목록 노출 -->
{% for error in form.non_field_errors %}
        {{ error }}
{% endfor %}
</p>
    {{ form.hd_value }}
<table> 
    <tr>
        <td>{{ form.title.label_tag }}</td>
        <td>
            {{ form.title }}
            {{ form.title.help_text }}
            <!-- 개별 필드 errors 목록 노출 -->
            {% for error in form.title.errors %} 
                            {{ erorr }}
            {% endfor %}
        </td> 
    </tr>
    <tr>
        <td>{{ form.content.label_tag }}</td>
        <td>
            {{ form.content }}
            {{ form.content.help_text }}
            {% for error in form.content.errors %}
                {{ error }}
            {% endfor %}
        </td> 
    </tr>
    </table>
    <input type="submit" />
</form>
<script>
var el = document.getElementById('{{ form.hd_value.id_for_label }}'); 
el.value = 'abc';
</script>


2. 일괄적 필드 렌더링


<form action="" method="post">
    {% csrf_token %}
    {% for error in form.non_field_errors %}
        {{ error }}
    {% endfor %}
    <!-- hidden 필드 렌더링 --> 
    {% for field in form.hidden_fields %}
        {{ field }}
    {% endfor %}
    <!-- visible 필드 렌더링 --> 
    <table>
    {% for field in form.visible_fields %}
        <tr>
            <td>{{ field.label_tag }}</td>
            <td>
                {{ field }}
                {{ field.help_text }}
                {% for error in field.errors %}
                    {{ error }}
                {% endfor %}
            </td> 
        </tr>
    {% endfor %}
    </table>
    <input type="submit" />
</form>
<script>
var el = document.getElementById('{{ form.hd_value.id_for_label }}');
el.value = 'abc';
</script>