Django在表单字段</div>之后添加<div>

时间:2013-03-26 06:27:40

标签: python html django django-forms django-templates

以下是我的表单代码:

class FMessage(forms.Form):
    From = forms.CharField()
    To = forms.CharField()
    Subject = forms.CharField()
    Message = forms.CharField()

这是我的HTML代码:

<form method='POST' action='.'>
    {% csrf_token %}
    {{ form.as_p }}
    <input type='submit' value='submit'>
</form>

代码通过显示表单工作正常,并且在功能上没有任何问题,但现在我需要用div将表单字段包装在html中,如下所示:

<div id='mydiv'>
    <input ... />
<div>

我该如何解决?

2 个答案:

答案 0 :(得分:13)

好像你真的不想使用内置的<p><table>包裹的表单,而是希望显示包含在<div>'s中的字段。您可以按如下方式迭代表单中的字段。

{% if form %}
    <!-- Form Errors -->
    {% if form.errors %}
        <ul class="errors">
            {% for error in form.errors %}
                <li>{{ error }}</li>
            {% endfor %}
        </ul>
    {% endif %}

    <!-- Display Form -->
    <form>
    {% csrf_token %}
    {% for field in form %}
        <div class="mydiv">
            <label class="mylabel">{{ field.label }}</label>
            {{ field }}
        </div>
    {% endfor %}
    </form>
{% endif %}

答案 1 :(得分:3)

不要使用form.as_p呈现表单。您需要显示表单的每个字段,例如,使用form.to。通过使用这种方式,您可以将字段'to'包装到div

 <div>{{ form.To}} </div>

有关详细信息,请查看此link