django InlineFormsets错误报告,其中formset错误列表为空
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django InlineFormsets错误报告,其中formset错误列表为空相关的知识,希望对你有一定的参考价值。
我使用Django内联表单集创建时有一个奇怪的错误。
Django报告了formset错误,因此它没有完成创建。
我也测试了is_valid
,它返回true。怎么了 ?
但是,如果我检查它们,那么错误字典中没有任何内容:
1.
{{formset.errors}}
[{}, {}, {}, {}, {}]
2.
{% if formset.errors %}
{% for error in formset.errors %}
error {{ error }}
{% endfor %}
{% endif %}
{}
我想我理解这个问题:
{% if formset.errors %} even if I have [{}, {}, {}, {}, {}] will pass.
如果我使用{% if not formset.errors %}
,当我有真正的错误时也会阻止。
检查列表是否为空不起作用,因为它不是真的空,它有空字典。
我可以在表单列表中使用一个循环来检查字典,但是为每个字段或表单/表单集执行此操作我认为这不是一个好的选择。
答案
首先,检查formset是否绑定。
formset.is_bound
如果您尚未将formset绑定到任何数据,那么它将不会有任何错误,但它永远不会有效。
其次,确保你调用is_valid
方法
formset.is_valid()
最后,请注意formset.errors
返回包含每个表单错误的字典列表。还有formset.non_form_errors()
,whic返回不属于特定形式的错误。
以上是关于django InlineFormsets错误报告,其中formset错误列表为空的主要内容,如果未能解决你的问题,请参考以下文章