以下是我的表单代码:
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>
我该如何解决?
答案 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