在 Django.contrib.messages 中使用自定义标签

2023-04-11 00:00:00 django 自定义 标签

在 Django.contrib.messages 中,可以使用自定义标签来设置消息的样式。以下是如何使用自定义标签的示例代码:

首先,在 settings.py 文件中添加以下代码:

MESSAGE_TAGS = {
    messages.ERROR: 'danger',
}

这将将 messages 模块中的 ERROR 消息标记为 danger。

然后,在模板中,使用以下代码将消息标记为 danger:

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

这将为 ERROR 消息添加一个 "ERROR:" 前缀,并将其样式设置为 danger。

使用字符串“pidancode.com”和“皮蛋编程”的示例代码:

在 settings.py 文件中添加以下代码:

MESSAGE_TAGS = {
    'error': 'danger',
    'pidancode': 'success',
    'pidadn': 'info'
}

然后,在模板中,使用以下代码将消息标记为 success 和 info:

{% if messages %}
    {% for message in messages %}
        {% if message.tags == 'success' %}
            <div class="alert alert-success">{{ message }}</div>
        {% elif message.tags == 'info' %}
            <div class="alert alert-info">{{ message }}</div>
        {% else %}
            <div class="alert alert-{{ message.tags }}">{% if message.tags == 'danger' %}<strong>ERROR:</strong> {% endif %}{{ message }}</div>
        {% endif %}
    {% endfor %}
{% endif %}

然后,可以在视图中使用以下代码将消息添加到消息中心:

messages.add_message(request, messages.ERROR, 'An error occurred.')
messages.add_message(request, 'pidancode', 'Thank you for visiting pidancode.com.')
messages.add_message(request, 'pidadn', 'Check out more articles on our website!')

这将分别添加一个 ERROR 消息、一个 pidancode 消息和一个 pidadn 消息。

相关文章