修复ManagementForm数据

时间:2018-07-19 13:58:32

标签: django python-3.x django-forms formset

我有一些看起来像这样的代码:

func TestTicker(wg *sync.WaitGroup) {
    go func(interval time.Duration) {
        // wait until next time interval
        now := time.Now()
        time.Sleep(now.Truncate(interval).Add(interval).Sub(now))
        // get time of first beat
        now = time.Now()
        // start the ticker
        t := time.NewTicker(interval)
        for {
            fmt.Println(now)
            now = <-t.C
        }
        wg.Done()
    }(time.Minute)
}

我真的很想保持这种方式,因为这是我所要求的演示文稿。但是,我一直收到“ ManagementForm数据丢失或被篡改”错误,显然是因为我弄乱了表单集。

是否有一种聪明的方法来修复managementform-data,以便我的POST可以通过,还是我必须完全重新格式化模板?

(是的,我知道我的代码包含一个难看的,效率低下的hack。请随时提出其他选择,但是性能无关紧要。)

1 个答案:

答案 0 :(得分:2)

您收到有关缺少管理表单数据的错误,因为您没有在{{ formset.management_form }}中包含管理表单。有关更多信息,请参见the docs

要防止模板中出现双重循环,可以在视图中压缩modelformset.forms

models_and_forms = zip(model, formset.forms)

然后遍历模板中的models_and_forms

<table>
    {{ formset.management_form }}
    {% for n, i in models_and_forms %}
        <tr>
            <th>{{ n }}</th>
            {% for j in i %}
                <th>{{ j }}</th>
            {% endfor %}
        </tr>
    {% endfor %}
</table>