Django模板中如何实现不区分大小写的字符串比较?
解决Django模板中大小写不匹配的条件判断问题
这问题太常见啦!就是因为topic.title是小写的home,而page.slug是大写开头的Home,直接用==比较时大小写敏感,才导致判断失败。咱们只需要把两个值统一转换成相同大小写(全小写或全大写)再比较就行,Django模板自带的过滤器就能轻松搞定。
修改后的完整模板代码如下:
nav_bar.html {% for topic in landing_pages %} <li role="presentation"> <a class="{% if topic.title|lower == page.slug|lower %}menu_active{% endif %}" href="/{{topic.slug}}/">{{topic.title}}</a> </li> {% endfor %}
关键说明:
- 用
|lower过滤器把topic.title和page.slug都转换成小写,这样不管原内容的大小写格式如何,只要文本内容一致就能匹配成功 - 如果你更习惯用大写来统一格式,也可以换成
|upper过滤器,效果完全相同:{% if topic.title|upper == page.slug|upper %}menu_active{% endif %}
这样修改后,home和Home会被转换成相同的小写(或大写)形式,条件判断就能正常生效,对应的<a>标签也会正确加上menu_active类啦!
内容的提问来源于stack exchange,提问作者priyanka priya
相关产品推荐
相关产品推荐

