消息标签的 Django 顺序
Django order of message tags
我想知道是否可以更改带有额外标签的 django 消息的消息标签的顺序。
from django.contrib import messages
messages.success(request, 'success message', extra_tags='safe')
在我的模板中我使用
{% if messages %}
{% for message in messages %}
<div class="alert alert-{{ message.tags }}">
{% if 'safe' in message.tags %}{{ message|safe }}{% else %}{{ message }}{% endif %}
</div>
{% endfor %}
{% endif %}
这样 div 的 class 将是:
<div class="alert alert-safe success">
但我想切换这两个标签,这样我就可以使用 bootstrap class。
<div class="alert alert-success safe">
这可能吗?
tags
属性 在 Message
class 中定义并硬编码顺序。我认为更改它会很棘手。
另一种方法是在模板中使用 {{ message.level_tag }}
和 {{ message.extra_tags }}
而不是 {{ message.tags }}
。
<div class="alert alert-{{ message.level_tag }} {{ message.extra_tags|default_if_none:'' }}">
如果您没有在 CSS
中使用 safe
class,您可以删除 {{ message.extra_tags|default_if_none:'' }}
部分。
另一种方法是在视图中使用类似 mark_safe
or format_html
的方法:
messages.success(request, mark_safe('success message'))
那么你就不需要在模板中勾选message.extra_tags
:
{% for message in messages %}
<div class="alert alert-{{ message.tags }}">
{{ message }}
</div>
{% endfor %}
我想知道是否可以更改带有额外标签的 django 消息的消息标签的顺序。
from django.contrib import messages
messages.success(request, 'success message', extra_tags='safe')
在我的模板中我使用
{% if messages %}
{% for message in messages %}
<div class="alert alert-{{ message.tags }}">
{% if 'safe' in message.tags %}{{ message|safe }}{% else %}{{ message }}{% endif %}
</div>
{% endfor %}
{% endif %}
这样 div 的 class 将是:
<div class="alert alert-safe success">
但我想切换这两个标签,这样我就可以使用 bootstrap class。
<div class="alert alert-success safe">
这可能吗?
tags
属性 在 Message
class 中定义并硬编码顺序。我认为更改它会很棘手。
另一种方法是在模板中使用 {{ message.level_tag }}
和 {{ message.extra_tags }}
而不是 {{ message.tags }}
。
<div class="alert alert-{{ message.level_tag }} {{ message.extra_tags|default_if_none:'' }}">
如果您没有在 CSS
中使用 safe
class,您可以删除 {{ message.extra_tags|default_if_none:'' }}
部分。
另一种方法是在视图中使用类似 mark_safe
or format_html
的方法:
messages.success(request, mark_safe('success message'))
那么你就不需要在模板中勾选message.extra_tags
:
{% for message in messages %}
<div class="alert alert-{{ message.tags }}">
{{ message }}
</div>
{% endfor %}