从Django模板请求ModelForm实例

时间:2017-02-12 09:33:51

标签: python django django-forms

在生成表格时,有没有办法使用模型实例中的数据预填充表单字段?

假设我有一个广告系列模型,并且我在表格中循环出实例值和表单字段。

E.g。类似的东西:

              {% for campaign in all_campaigns %}
                <tr>
                    <td>{{ forloop.counter }}</a></td>
                    <td>{{ campaign.name }}</td>
                    <td>{{ campaign.get_status_display }}</td>
                    <td>{{ campaign.start_date }}</td>
                    <td>{{ campaign.end_date }}</td>
                </tr>

                # --> have these form fields based on the campaign 
                #  instance that's being rendered above, so clicking an
                # edit button will edit this campaign instance ?
                <tr class='initially-hidden'>
                    <td>{{ campaign.id }}</a></td>
                    <td>{{ form.name}} </td>
                    <td>{{ form.status }}</td>
                    <td>{{ form.start_date }}</td>
                    <td>{{ form.end_date }}</td>
                </tr>
              {% endfor %}

提前致谢!

1 个答案:

答案 0 :(得分:0)

查看ModelFormSets,特别是使用modelformset_factory函数。这将为您生成捆绑在一起的所有表单,然后您可以使用formset template tags在模板中循环它们。

您可能会发现根据代码的顶部部分打印裸广告系列详细信息更容易/更漂亮,而是将表单字段设置为不可编辑的文本,然后在单击编辑按钮时启用它们。