使用django-boostrap3显示表单错误

时间:2017-04-07 14:53:55

标签: python django django-bootstrap3

我正在使用Django和django-bootstrap 3开发一个Web应用程序。

我有几种形式可以验证并在出现问题时抛出错误。但是,我不希望django-bootstrap在可允许的红色警告框中显示警报消息。输入字段下面的错误消息就足够了。

我如何实现这一目标?

密码更改表单示例:

<form class="allign-bottom" method="post" enctype="multipart/form-data">
    {% csrf_token %}
    {% bootstrap_form form %}
    {% buttons %}
        <button type="submit" class="btn btn-primary">
            {% bootstrap_icon "glyphicon glyphicon-refresh" %}&nbsp; Update password
        </button>
    {% endbuttons %}
</form>

图片示例:

2 个答案:

答案 0 :(得分:0)

为了不在顶部显示不允许的警告框,您应该删除

{% bootstrap_messages %}

模板标记,放在HTML文件的某个位置。

此标记负责显示任何潜在错误(实际上它只是Django messages,使用Bootstrap样式格式化。)

根据{% bootstrap_messages %}的来源,此模板标记呈现messages.html,它会迭代消息并呈现它们(将每个消息包装在<div>元素内)。

答案 1 :(得分:0)

对我来说也是这样,所以我去了代码,这似乎是默认行为,至少在最新版本的dango-bootstrap3

这是一个已知问题,似乎将在下一版本中修复,这里有一个未解决的问题和已经开发的提交: https://github.com/dyve/django-bootstrap3/issues/380

如果你现在需要这个,在下一个版本的软件包发布之前,你可以去bootstrap3 / renderers.py和arround第227行(版本8.2.3),你可以改变这个:

return self.render_errors() + self.render_fields()

by:

return self.render_errors(type='non_fields') + self.render_fields()

手动更改软件包代码不是一个好习惯,但如果您现在需要这样做,那么它是一个时间解决方案,直到它发布的软件包的新版本。 这应该可以解决你的问题。

希望这有帮助!