【问题标题】:Django messages + bootstrap toast. How to make it work?Django 消息 + 引导吐司。如何让它发挥作用?
【发布时间】:2021-04-11 10:57:04
【问题描述】:

试图让引导弹出窗口和 django 消息正常工作。问题是我不明白如何正确执行,因此如果上下文中有消息,它将显示在站点的右上角。

文档:https://getbootstrap.com/docs/4.3/components/toasts/

Django v3.1.6 和 Bootstrap v4.5

在项目的静态文件中有bootstrap.bundle.js,它也包含在基础模板中。 django的布局我不是很擅长,所以我将非常感谢最详细的答案。

【问题讨论】:

    标签: django bootstrap-4 message toast


    【解决方案1】:

    您可以使用MESSAGE_TAGS 设置修改模板中显示的消息类。

    将此添加到您的settings.py

    MESSAGE_TAGS = {
        messages.DEBUG: 'alert-info',
        messages.INFO: 'alert-info',
        messages.SUCCESS: 'alert-success',
        messages.WARNING: 'alert-warning',
        messages.ERROR: 'alert-danger',
    }
    

    然后将它们显示在您的模板中(最好在您的基本模板中)

    {% for message in messages %}
        <div class="alert {{ message.tags }} alert-dismissible shadow fade show" role="alert">
            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                <span aria-hidden="true">&times;</span>
            </button>
            {{ message | safe }}
        </div>
    {% endfor %}
    

    【讨论】:

      【解决方案2】:

      你需要

      a) 在视图中创建消息

      b) 向模板添加消息部分

      您需要在模板中添加如下内容:

       {% if messages %}
        <div class="add-your-bootstrap-classes-here-if-needed">
          {% for msg in messages %}
              <!-- add your message displaying html here -->
          {% endfor %}
        </div>
      {% endif %}
      

      在视图中,您只需使用 Django 消息传递框架文档https://docs.djangoproject.com/en/3.1/ref/contrib/messages/ 中列出的方法之一。

      【讨论】:

        猜你喜欢
        • 2022-08-18
        • 2021-12-31
        • 2021-03-01
        • 1970-01-01
        • 2022-01-02
        • 2021-09-06
        • 1970-01-01
        • 2021-10-06
        • 1970-01-01
        相关资源
        最近更新 更多