繁体   English   中英

为什么 Django 消息标签框不起作用?

[英]Why does the Django message tags boxs is not working?

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

当我按下提交按钮和我的网页时,如果短信发送正确,一条消息。成功会打印在屏幕上。(成功消息工作正常。文本和绿色显示正确)但如果消息没有发送,则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 %}

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM