如何在Django表单中移除__all__错误并为每个字段渲染错误
解决表单字段单独显示错误并移除__all__错误的方案
直接修改你的模板代码,移除全局错误显示块,改为在每个字段后单独渲染对应错误,自动排除__all__级别的表单错误:
{% csrf_token %} <!-- 移除原全局错误输出块 --> <label>{{form.username.label}}</label> {% render_field form.username class+='form-control border' %} <!-- 渲染username字段的单独错误 --> {% if form.username.errors %} <div class="text-danger"> {% for error in form.username.errors %} <p>{{ error }}</p> {% endfor %} </div> {% endif %} <br> <label>{{form.password.label}}</label> {% render_field form.password class+='form-control border' %} <!-- 渲染password字段的单独错误 --> {% if form.password.errors %} <div class="text-danger"> {% for error in form.password.errors %} <p>{{ error }}</p> {% endfor %} </div> {% endif %} <br> <input class="btn btn-primary" type="submit" value="Login"> <p>don't have an account <a href="">Register</a> </p> </form>
说明
- 删除原
{{form.errors}}输出代码,避免显示包含__all__的全局错误 - 每个字段渲染后单独判断并输出对应错误,用
text-danger标记为错误样式(可根据自身CSS调整) - 仅展示字段级验证错误,完全排除__all__级别的表单错误
内容的提问来源于stack exchange,提问作者rusty
相关产品推荐
相关产品推荐

