【问题标题】:Does Bootstrap/Django Error message has no red color?Bootstrap/Django 错误消息是否没有红色?
【发布时间】:2019-08-07 17:14:56
【问题描述】:

我想在我的 Django 应用程序中处理消息。不幸的是,除了错误消息不是红色之外,每个消息类型似乎都按预期工作。

我的代码很简单。

views.py

from django.contrib import messages

def generate_test(request):
  messages.info(request, 'TEST')
  messages.success(request, 'TEST')
  messages.warning(request, 'TEST')
  messages.error(request, 'TEST')
  return render(request, 'test.html')

test.html

{% extends "base_generic3.html" %}
{% load static %}
{% block content %}
{% endblock %}

我的 base_generic3.html 包含许多其他内容,例如 jquery 和 bootstrap-4 集成。但以下部分用于以 bootstrap-4 样式显示消息:

...
{% if messages %}
{% for message in messages %}
<div class="alert alert-{{ message.tags }} alert-dismissible text-center" role="alert">
     <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span>
     </button>
     <strong>{% if message.level == DEFAULT_MESSAGE_LEVELS.ERROR %}Error{% else %}{{ message.tags|title }}{% endif %}!
     </strong> {{ message }}
 </div>
 {% endfor %}
 {% endif %}
 ...

【问题讨论】:

    标签: django bootstrap-4


    【解决方案1】:

    问题是 Django 的默认消息标签与 Bootstrap 的上下文类不完全匹配。 Bootstrap 使用上下文类 danger 作为红色。您可以将MESSAGE_TAGS 设置添加到settings.py,以将danger 标记应用于级别为messages.ERROR 的消息。

    要更改消息级别的默认标签(内置或自定义),请将 MESSAGE_TAGS 设置设置为包含您希望更改的级别的字典。由于这扩展了默认标签,您只需要为您希望覆盖的级别提供标签:

    settings.py

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 2021-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多