创建无多次查询的Django表单集

5 投票
3 回答
942 浏览
提问于 2025-04-15 22:27

我需要在一个页面上显示多个表单(最多10个),这是我用来实现这个功能的代码。

TheFormSet = formset_factory(SomeForm, extra=10)
...
formset = TheFormSet(prefix='party')

return render_to_response('template.html', {
        'formset' : formset,
})

问题是,我感觉Django在每个表单中都要查询数据库,即使它们显示的数据是一样的。

这就是表单组(Formsets)的工作方式吗?还是我做错了什么?在Django里面有没有解决办法,还是我必须用JavaScript来绕过这个问题?

3 个回答

0

你确定Django真的在查询数据库吗?试试使用Django调试工具栏,看看Django实际执行了哪些查询。

1

如果你的查询都是一样的,可以考虑看看 johnny-cache,看看它能否提升你的性能。

1

如果你用 modelformset_factory 代替 formset_factory 会发生什么?这样做有帮助吗?

撰写回答