And*_*eas 4 django django-templates django-forms inline-formset
由于django中出色的内联模型表单集,我有一个非常先进的表单,有4个内联表单集.在模板中,我在选项卡中显示每个formset.如果该选项卡中的formset完全有任何验证错误,那么一切都非常灵活,但是我想将选项卡颜色设置为红色.所以我尝试了这个:
<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>
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为表单.*Set.errors是一个带有空字典的列表(所以它总是会返回True),如[{},{},{}](表单集中的表单数量是相同的空formset.errors中的字典
我认为一个解决方案可能是继承BaseInlineFormSet并添加一个has_errors方法或其他东西,然后对我的所有formset使用该子类化基础.还有其他建议吗?谢谢!
您可以检查formset方法的结果,is_valid然后检查每个表单的有效性:{% if forms.FooFormSet.is_valid %}.
据我所知,这是或多或少无操作(数据库不感动,形式不重新验证)如果形式已经发生了验证,所以它不会在所有伤害的性能.
| 归档时间: |
|
| 查看次数: |
2353 次 |
| 最近记录: |