7

以下是我的表单代码:

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>

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

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

我该如何解决?

4

2 回答 2

16

似乎您并不想使用内置<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 %}
于 2013-03-26T07:59:14.590 回答
7

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

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

有关更多详细信息,请查看此链接

于 2013-03-26T06:34:27.983 回答