Rei*_*ica 6 python django django-templates
在Django模板中,我想基于某些"条件"将CSS类添加到DIV,例如:
<div class="pkg-buildinfo
{% if v.release.version == pkg.b.release.version %}active{% else %}inactive{% endif %}
{% if v.release.version == project.latest.version %}latest{% else %}notlatest{% endif %}">
Run Code Online (Sandbox Code Playgroud)
(注意这v是一个循环变量;整个过程都在for循环中)
上面根据两个条件添加了CSS类"活动"或"非活动"和"最新"或"非最新".
然而,这很难阅读和冗长.我发现该with语句不支持分配表达式/条件的值(与复杂变量相对),这是一个遗憾.有一个更好的方法吗?
自定义过滤器可能是一个不错的选择。
@register.filter
def active_class(obj, pkg):
if obj.release.version == pkg.b.release.version:
return 'active'
else:
return 'inactive'
Run Code Online (Sandbox Code Playgroud)
并在您的模板中使用它:
<div class="pkg-buildinfo {{ obj|active_class:pkg }}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2277 次 |
| 最近记录: |