Django,遍历所有表单错误

Posted

技术标签:

【中文标题】Django,遍历所有表单错误【英文标题】:Django, loop over all form errors 【发布时间】:2011-01-28 14:01:10 【问题描述】:

在我的模板中,我想遍历所有表单错误,包括不属于特定字段的错误。 (这意味着对于 form.errors,它也应该显示 __all__ 错误)

我尝试了几个版本,即:

 <div id="msg">
  % if form.errors %
  <div class="error">
   <p><span>ERROR</span></p>
   <ul>
   % for key,value in form.errors %
    % for error in value %
     <li> error </li>
    % endfor %
   % endfor %
   </ul>
  </div>
  % endif %
 </div>

仍然没有成就,如果有任何建议,我将不胜感激。

【问题讨论】:

【参考方案1】:

Django 中的表单错误被实现为ErrorDict 实例(它只是dict 的子类,带有附加功能)。尝试对循环语法的模板稍作调整:

% for key, value in form.errors.items %

【讨论】:

【参考方案2】:

您是否正在寻找form.non_field_errors?这就是您可以访问与特定字段无关的错误的方式。

% if form.non_field_errors %
<ul>
     form.non_field_errors.as_ul 
</ul>
% endif %

检查forms.py test suite 以及另一个示例。搜索form.non_field_errors

【讨论】:

以上是关于Django,遍历所有表单错误的主要内容,如果未能解决你的问题,请参考以下文章

Django“自动对焦”表单验证错误

Django中的Form表单验证

如何在 Django 中列出所有与表单相关的错误?

Django:如何显示内联表单集中每个模型对象的表单错误

附加到 Django 表单验证错误?

在 django 中将 css 类添加到验证错误的字段