【问题标题】:Django - Custom name of a flash messageDjango - 自定义消息的名称
【发布时间】:2018-05-30 01:20:31
【问题描述】:

我想在模板中显示一条消息,其中包含大量信息,但我还没有看到任何方法可以给它一个自定义名称,这将使它具有适当的类或 id用于造型。在 Laravel 中:

网页.php

@if (session()->has('login_success'))
    <div id="loginFlash">{{ session('login_success') }}</div>
@endif

login_success 是在渲染页面之前定义的

到目前为止,Django:

网页.html

{% for message in messages %}
    <div id="{{ message.tags }}">
        {{ message }}
    </div>
{% endfor %}

但我无法让 message.tags 返回 SINGLE 自定义值。例如:

messages.add_message(self.request, messages.INFO, self.request.user.username, 'loginFlash')

这会返回:

<div id="loginFlash info">
    username
</div>

如何去掉第二个参数?似乎所有message 方法都已经指定了至少一个标签。非常感谢!

【问题讨论】:

    标签: django django-templates django-views django-messages


    【解决方案1】:

    您可以自定义tags.messages 输出,通过覆盖该级别的设置来自定义每个消息类别的标签/类,如下所示:

    https://docs.djangoproject.com/en/2.0/ref/contrib/messages/#message-tags

    https://docs.djangoproject.com/en/2.0/ref/settings/#std:setting-MESSAGE_TAGS

    【讨论】:

      【解决方案2】:

      需要另一个 if 语句,但可以完成工作:

      {% for message in messages %}
          {% if 'loginFlash' in message.tags %}
              <div id="loginFlash">{{ message }}</div>
          {% endif %}
      {% endfor %}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-18
        • 2014-11-16
        • 1970-01-01
        • 1970-01-01
        • 2015-12-20
        • 1970-01-01
        • 2013-09-09
        • 2011-09-05
        相关资源
        最近更新 更多