我正在使用 Django 消息传递框架来显示反馈消息。我无法显示成功消息。
以下是来自此处建议的解决方案和文档的改编代码:
{% for message in messages.success %}
{% if 'success' in message.tags %}
<div class="success-message">{{ message }}</div>
{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
这不会产生任何结果。如果我使用一些不那么歧视的东西,它会让我的消息完美地呈现:
{% for message in messages %}
<p>{{ message }}</p>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
该视图创建如下消息:
messages.success(request, "here's a sample success message")
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我正在使用 django 1.9.2
问题是您正在尝试迭代messages.success,它不是列表。相反,迭代messages自身,并检查是否成功:
{% for message in messages %}
{% if message.level == DEFAULT_MESSAGE_LEVELS.SUCCESS %}
<div class="success-message">{{ message }}</div>
{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
事实上,您最初的示例中的唯一问题是尝试迭代messages.success而不是messages. 你的标签检查也应该有效,即使它不是那么“干净”:
{% for message in messages %}
{% if 'success' in message.tags %}
<div class="success-message">{{ message }}</div>
{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3495 次 |
| 最近记录: |