Django 引导警报未按预期工作

Posted

技术标签:

【中文标题】Django 引导警报未按预期工作【英文标题】:Django bootstrap alerts not working as expected 【发布时间】:2017-05-13 03:40:43 【问题描述】:

我需要这方面的帮助。

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

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

我做错了什么?

这是我得到的:

<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(request, '已添加!')

查看我的危险信息 messages.error(request, '已被删除!')

提前致谢..!

编辑

当 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',

【问题讨论】:

【参考方案1】:

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

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

from django.contrib.messages import constants as messages
MESSAGE_TAGS = 
    messages.ERROR: 'danger',

【讨论】:

【参考方案2】:

我猜你在 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 %

请注意,您使用的是&lt;p&gt; 标签而不是&lt;div&gt;。也可以直接使用 message.tags

【讨论】:

以上是关于Django 引导警报未按预期工作的主要内容,如果未能解决你的问题,请参考以下文章

e.PreventDefault()未按预期触发,表单提交[重复]

引导网格未按预期工作[重复]

一旦解除了引导 vue 警报,它就不再工作了

引导程序未按预期运行

Django urls.py。未按预期工作

在引导警报中使用百里香值