0

我的消息标签有问题。所以我有一些发送短信的小应用程序。

当我按下提交按钮和我的网页时,如果短信发送正确,则会在屏幕上打印一条消息。成功消息会打印在屏幕上。(成功消息工作正常。文本和绿色显示正确)但是如果没有发送消息,一个打印了message.error,但只打印了文本,没有打印红色框(这不好,我也希望打印红色框)。我在网上搜索找到答案,但我没有找到任何东西。谢谢帮助

视图.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")

主页.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 %}
4

1 回答 1

1

Bootstrap 的警报类是 alert-danger,我很确定 django 的错误标签是error. 因此,您的警报 div 正在使用与"alert alert-error"定义的任何样式不匹配的类呈现。

为了解决这个问题,有几个选项:

  1. 生成带有“危险”标签的通用消息。
  2. 自定义引导程序样式,以便像 alert-danger 一样处理 alert-error
  3. 添加“危险”作为messages.error调用的额外标签,然后处理模板中多个标签的可能性。

实际上,如果您已经需要处理模板中存在多个标签的可能性,我不会感到惊讶。

于 2020-02-12T23:05:01.003 回答