目前,我正在使用默认的django模板构建表单,如下所示:
class old_form(forms.Form):
row_1 = forms.FloatField(label='Row 1')
row_2_col_1 = forms.FloatField(label='Row 2_1')
row_2_col_2 = forms.FloatField(label='Row 2_2')
html = str(old_form())
但是,我想在我的模板中添加多个列,并且仍然使用django表单对象来定义参数。
新的温度。应该是什么样的(或者它可以循环遍历所有变量):
def getdjtemplate():
dj_template ="""
<table>
<tr>{{ table.row_1 }}</tr>
<tr>
<td>{{ table.row_2_col_1 }}</td>
<td>{{ table.row_2_col_2 }}</td>
</tr>
"""
return dj_template
djtemplate = getdjtemplate()
newtmpl = Template(djtemplate)
我的问题是如何“组合”新模板和课程old_form()
?
感谢您的帮助!
答案 0 :(得分:1)
您可以使用其字段as shown in the documentation自定义表单HTML。你是以一种不寻常的方式做到这一点;通常你会将模板放在一个文件中,而不是从函数中返回它,但你仍然可以这样做:
from django.template import Context
def getdjtemplate():
dj_template = """
<table>
{% for field in form %}
<tr>{{ field }}</tr>
{% endfor %}
</table>
"""
return dj_template
form = old_form()
djtemplate = getdjtemplate()
newtmpl = Template(djtemplate)
c = Context({'form': form})
newtmpl.render(c)