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

Fri*_*end 4 html python django django-templates django-forms

以下是我的表格代码:

class FMessage(forms.Form):
    From = forms.CharField()
    To = forms.CharField()
    Subject = forms.CharField()
    Message = forms.CharField()
Run Code Online (Sandbox Code Playgroud)

这是我的HTML代码:

<form method='POST' action='.'>
    {% csrf_token %}
    {{ form.as_p }}
    <input type='submit' value='submit'>
</form>
Run Code Online (Sandbox Code Playgroud)

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

<div id='mydiv'>
    <input ... />
<div>
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

Amy*_*yth 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 %}
Run Code Online (Sandbox Code Playgroud)


Tha*_*ran 7

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

 <div>{{ form.To}} </div>
Run Code Online (Sandbox Code Playgroud)

欲了解更多详情,请查看此链接