gpt4 book ai didi

django - 如何检测模板中的表单集是否有任何错误?

转载 作者:行者123 更新时间:2023-12-03 16:09:18 25 4
gpt4 key购买 nike

感谢 django 中出色的内联模型表单集,我有一个非常高级的表单,其中包含 4 个内联表单集。在模板中,我在选项卡中显示每个表单集。一切都非常流畅,但如果该选项卡中的表单集有任何验证错误,我想将选项卡着色为红色。所以我试过这个:

<div id="tabs">
<ul>
<li><a href="#foo-tab"{% if forms.FooFormSet.errors %} class="error"{% endif %}>Foo</a></li>
<li><a href="#bar-tab"{% if forms.BarFormSet.errors %} class="error"{% endif %}>Bar</a></li>
<li><a href="#zoo-tab"{% if forms.ZooFormSet.errors %} class="error"{% endif %}>Zoo</a></li>
<li><a href="#doo-tab"{% if forms.DooFormSet.errors %} class="error"{% endif %}>Doo</a></li>
</ul>

<div id="foo-tab"></div>
<div id="bar-tab"></div>
<div id="zoo-tab"></div>
<div id="doo-tab"></div>
</div>

但它不起作用,因为 forms.*Set.errors 是一个包含空字典的列表(因此它总是返回 True),例如 [{}, {}, {}] (表单集中的表单数量与空字典的数量相同) formset.errors 中的字典

我认为一种解决方案可能是对 BaseInlineFormSet 进行子类化并添加一个 has_errors 方法或其他方法,然后将该子类化的基础用于我的所有表单集。还有其他建议吗?谢谢!

最佳答案

您可以检查formset方法的结果is_valid ,依次检查每个表单的有效性:{% if forms.FooFormSet.is_valid %} .

据我所知,如果表单已经过验证,它或多或少是一个空操作(不触及数据库,不重新验证表单),所以它根本不会损害性能。

关于django - 如何检测模板中的表单集是否有任何错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3328489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com