gpt4 book ai didi

python - 如何测试 django 消息中是否存在某个级别

转载 作者:行者123 更新时间:2023-12-01 04:03:16 25 4
gpt4 key购买 nike

我需要创建一个容器<div>仅当至少有一条消息的 level == DEFAULT_MESSAGE_LEVELS.ERROR. 时,才适用于我的消息(然后,我将迭代我的消息并呈现带有错误标签的消息)。

在伪代码中,类似这样:

{% for message in messages %}
{% if 'error' in message.tags %}
<div id="error-container">
{% break %} <!-- break doesn't exist -->
{% endif %}
{% endfor %}

在模板中执行此操作的最简洁方法是什么?我不认为模板语言的表达能力足以打破 messages 的循环如果它发现一个带有错误标签的。有什么方法可以使用 firstof|first过滤器创建 <div>仅在 error 第一次出现时消息标签?

最佳答案

没有任何内置的东西。我建议编写您自己的上下文处理器或模板标记/过滤器来提取具有错误级别的内容。作为过滤器,它可能看起来像这样:

@register.filter
def get_errors_only(messages):
return [message for message in messages if 'error' in message.tags]

现在在模板中您可以执行以下操作:

{% with messages|get_errors_only as error_messages %}
{% if error_messages %}
..
{% endif %}
{% endwith %}

不要忘记在模板中加载 {% load your_custom_templatetags %} 模块,并根据 the docs 更新您的 settings.py 以使用额外的模板标签。 .

关于python - 如何测试 django 消息中是否存在某个级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36126334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com