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

时间:2016-12-28 20:16:16

标签: javascript jquery django 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 %}

观看我的成功消息 messages.success(请求,'已添加!。')

查看我的危险信息 messages.error(请求,'已删除!。')

提前致谢..!

修改

我解决了我的问题,西尔维奥回答了我的问题。每个引导程序警报工作得很好但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',}

2 个答案:

答案 0 :(得分:2)

我猜你使用错误的HTML标记进行Bootstrap:

{% 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 %}

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

答案 1 :(得分:2)

作为作者问题的更新,仅需要在设置中列出被覆盖的标签: 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',
}