将表单字段添加到整个formset

时间:2016-08-12 10:31:32

标签: django django-forms

我正在使用django-extra-views创建一个用于更新一组模型实例的formset,但我需要在整个formset中添加一个额外的字段 - 询问用户是否打算向相关人员发送有关任何更改的电子邮件不管是不是形式。

请注意,我不打算在formset中为每个表单添加一个字段 - 只需要为整个表单集添加一个字段。

知道我该怎么做?

3 个答案:

答案 0 :(得分:0)

我没有看到在formset上设置字段的任何方法,但你可以解决。在设置文件中使用键,该文件定义是否应该对formset中的任何更改进行推断,并检查如下

if formset.has_changed() and settings.INTIMATION_KEY:
    send_mail()

答案 1 :(得分:0)

您可以在一个模板中使用多个表单,在一个模板中使用多个表单集,以及表单和表单集的组合。您只需要提供不同的前缀即可将它们彼此区分开。

因此,您可以创建仅具有一个字段(可能是BooleanField)的表单,然后将表单集和新表单都传递给模板。

文档没有对此进行精确描述,但是非常接近: https://docs.djangoproject.com/en/2.1/ref/forms/api/#prefixes-for-forms https://docs.djangoproject.com/en/2.1/topics/forms/formsets/#using-more-than-one-formset-in-a-view

答案 2 :(得分:0)

您可以在模板中添加字段,例如。

<form method="post">
    {% csrf_token %}
    {{ formset.management_form }}
    {% for form in formset %}
     {{form}}
    {% endfor %}
    <input type="checkbox" name="send_email">
</form>