Почему ящики с тегами Django не работают? - PullRequest
0 голосов
/ 13 февраля 2020

У меня проблемы с тегами сообщений. Поэтому у меня есть несколько приложений, которые отправляют смс.

Когда я нажимаю кнопку отправки и мою веб-страницу, если смс отправляется правильно, на экране выводится сообщение. Успех работает нормально (текст и зеленый цвет отображаются корректно) Но если сообщение не отправлено, сообщение message.error напечатано, но напечатан только текст, поле красного цвета не напечатано (что не очень хорошо, я также хочу, чтобы было напечатано красное поле). Я искал в Интернете, чтобы найти ответ, но ничего не нашел. Спасибо за помощь

views.py

 try:
            sms = Client.messages.create(
                from_="+14509001443",
                body=mess,
                to=number
            )
            send = sms.sid
            print("DOne")
            form.instance.author = request.user
            form.save()
            messages.success(request, f'Votre message a bien été envoyé!')
            return redirect("sms-home")
        except:
            print("error")
            messages.error(request, f'Votre message na pas été envoyé!')
            return redirect("sms-home")

home. html

{% extends "sms/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

{% if messages %}
{% for message in messages %}
<div class="alert alert-{{ message.tags }}">
    {{ message }}
</div>
{% endfor %}
{% endif %}


<div>
    <form method="POST">
        {% csrf_token %}
        {{ form|crispy }}
        <button class="btn btn-outline-info" type="submit" value="Save">SEND</button>
    </form>
</div>


</body>
</html>
{% endblock content %}

1 Ответ

1 голос
/ 13 февраля 2020
Класс оповещения

Bootstrap опасен, я уверен, что тег django содержит error. Таким образом, ваше оповещение div обрабатывается с классами "alert alert-error", которые не соответствуют ни одному из стилей, которые определены.

Чтобы решить эту проблему, есть несколько вариантов:

  1. Создать generi c сообщение с тэгом 'danger'.
  2. Настройте свои стили bootstrap таким образом, чтобы error-error обрабатывался, как alert-danger
  3. Добавьте «danger» в качестве extra_tag для messages.error вызовите, а затем обработайте возможность использования нескольких тегов в вашем шаблоне.

На самом деле, я бы не удивился, если вам уже нужно обрабатывать возможность использования нескольких тегов в вашем шаблоне.

...