Django 引导程序警报未按预期工作

Use*_*696 12 javascript django jquery twitter-bootstrap

我需要这方面的帮助。

我正在尝试使用引导程序警报使我的应用程序看起来更好,我有一个添加项目的警报和另一个删除项目的警报。

当我添加一个项目时,我的警报看起来很棒并且工作正常,但是当我删除该项目时它无法正常工作......只显示我的消息而没有引导警报......

我究竟做错了什么?

这是我得到的:

<div class="container">
  {% if messages %}
  <div class="row">
  <div class="col-sm-6 col-sm-offset-3">
      {% for message in messages %}
      <p{% if message.tags == "success" %} class="alert alert-success "{% endif %}>{{ message }}</p>
      {% if message == 'danger' %}
      <p{% if message.tags == 'danger'  %} class="alert alert-danger"{% endif %}>{{ message }}</p>
      {% endif %}
      {% endfor %}


    </div>

  </div>
  {% endif %}
Run Code Online (Sandbox Code Playgroud)

查看我的成功 msg messages.success(request, '已添加!.')

对我的危险 msg messages.error 的看法(请求,'已被删除!。')

提前致谢..!

编辑

当 Silvio 回答我的问题时,我解决了我的问题。每个引导程序警报都很好用,但alert-danger要使其正常工作,我必须将其编辑settings.py为如下内容:

from django.contrib.messages import constants as message_constants
MESSAGE_TAGS = {message_constants.DEBUG: 'debug',
                message_constants.INFO: 'info',
                message_constants.SUCCESS: 'success',
                message_constants.WARNING: 'warning',
                message_constants.ERROR: 'danger',}
Run Code Online (Sandbox Code Playgroud)

use*_*325 12

作为作者问题的更新,只需要在设置中列出被覆盖的标签:https : //docs.djangoproject.com/en/3.0/ref/contrib/messages/#message-tags

在这种情况下(引导程序寻找“危险”,但 Django 提供“错误”):

from django.contrib.messages import constants as messages
MESSAGE_TAGS = {
    messages.ERROR: 'danger',
}
Run Code Online (Sandbox Code Playgroud)


sil*_*eto 8

我猜您对 Bootstrap 使用了错误的 HTML 标记:

{% if messages %}
  <div class="row">
  <div class="col-sm-6 col-sm-offset-3">
      {% for message in messages %}
      <div class="alert alert-{{ message.tags }}" role="alert">
          <p>{{ message }}</p>
      </div>
      {% endfor %}
    </div>

  </div>
{% endif %}
Run Code Online (Sandbox Code Playgroud)

请注意,您使用的是<p>标签而不是<div>. 也许你也可以{{ message.tags }}直接使用。