在不使用 form.as_ul 在模板中显示表单的情况下执行此操作的一种方法是使用 django-uni-form。首先你必须下载它here http://github.com/pydanny/django-uni-form并安装它。然后用于设置表单的代码可能如下所示:
from uni_form.helpers import FormHelper, Submit, Layout, Fieldset
class MyForm(Form):
#personal data
firstname = CharField()
lastname = CharField()
#education data
university = CharField()
major = CharField()
#foobar data
foobar = ChoiceField()
# now attach a uni_form helper to display the form
helper = FormHelper()
# create the layout
layout = Layout(
# first fieldset
Fieldset("Here you enter your personal data...",
'firstname', 'lastname'),
Fieldset("Here you enter your education data...",
'university', 'major'),
Fieldset('foobar')
# and add a submit button
sumbit = Submit('add', 'Submit information')
helper.add_input(submit)
现在,要在模板中显示此内容,您可以执行以下操作:
{% load uni_form %}
{% with form.helper as helper %}
{% uni_form form helper %}
{% endwith %}
这将输出 HTML(大致)如下所示:
<form>
<fieldset><legend>Here you enter your personal data...</legend>
<input name='firstname'>
<input name='lastname'>
</fieldset>
<fieldset><legend>Here you enter your education data...</legend>
<input name='university'>
<input name='major'>
</fieldset>
<fieldset>
<input name='foobar'>
</fieldset>
</form>
有关 uni_form 的更多信息,请阅读他们的文档(请参阅上面的链接)。
PS:我意识到这个回复已经晚了,我相信你已经解决了这个问题,但我认为这对现在遇到这个问题的人应该有帮助。