gpt4 book ai didi

python - yesno 过滤器的复杂比较?

转载 作者:行者123 更新时间:2023-11-28 16:50:13 26 4
gpt4 key购买 nike

我是 python/django 的新手。我喜欢 django 的模板,但有一件经常出现的事情我找不到

对我来说,在一个(可能很长的)HTML 标签上有一个条件属性是很常见的。大多数情况下,这是一个额外的 CSS 类。

例如,假设您有两个用于切换语言的链接,而您希望一次只启用一个。我发现自己在做这样的事情:

{% get_language_info for LANGUAGE_CODE as l %}
<a href="/path/to/switch/to/spanish"
class="{% ifequal l.code "es" %} disable {% endifequal %}">
<img src="/spanish/flag/url" alt="Spanish">
</a>
<a href="/path/to/switch/to/english"
class="{% ifequal l.code "en" %} disable {% endifequal %}">
<img src="/english/flag/url" alt="English">
</a>

其他示例可能是呈现项目列表并检查“选定”项目等。

在其他语言中,我使用三元运算符来完成此操作,但我知道这在 python/django 世界中被认为是“邪恶的”:-)

我想知道是否有一种方法可以利用“yesno”过滤器。我试过做类似的事情:

{{l.code=="es"|yesno:"disabled,"}}

但我无法让它工作...我是否遗漏了什么?

提前致谢。

最佳答案

问题只是您发布的代码中的语法:

{{l.code=="es"|yesno:"disabled,"}}

实际上是这样处理的:

{{ l.code=={{"es"|yesno:"disabled,"}} }}

(注意:该代码不起作用,它只是为了说明 Django 是如何读取它的)

你想要的是一个自定义模板标签,它像 if 模板标签一样工作,但返回像 yesno 过滤器。您可以在 djangosnippets.com 之类的网站上搜索;也许有人已经为您完成了工作。否则,我建议查看这两个的 Django 源代码并尝试将它们合并到您自己的模板标签中。

关于python - yesno 过滤器的复杂比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8404782/

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