0

目前,我正在使用默认的 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()

谢谢您的帮助!

4

1 回答 1

1

您可以使用其字段自定义表单 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)
于 2013-09-03T16:51:05.440 回答