Сообщение об ошибке Bootstrap / Django не имеет красного цвета? - PullRequest
0 голосов
/ 17 марта 2019

Я хотел поиграться с сообщениями в моем Django-приложении.К сожалению, каждый тип сообщения работает должным образом, за исключением того, что сообщение об ошибке не является красным.

enter image description here

Мой код очень прост.

просмотров.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 %}
 ...

1 Ответ

2 голосов
/ 17 марта 2019

Проблема в том, что теги сообщений по умолчанию в 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',
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...