我有一些看起来像这样的代码:
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。请随时提出其他选择,但是性能无关紧要。)
答案 0 :(得分:2)
您收到有关缺少管理表单数据的错误,因为您没有在{{ formset.management_form }}
中包含管理表单。有关更多信息,请参见the docs。
要防止模板中出现双重循环,可以在视图中压缩model
和formset.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>