Python 如何将html类添加到Django模板&x27;对于循环';动态的?
我有一个CSS文件,其中定义了我的一些样式:Python 如何将html类添加到Django模板&x27;对于循环';动态的?,python,css,django,django-templates,Python,Css,Django,Django Templates,我有一个CSS文件,其中定义了我的一些样式: .class-a{ /*一些风格*/ } .乙级{ /*一些风格*/ } .c类{ /*一些风格*/ } d级{ /*一些风格*/ } 这些样式必须应用于djangofor循环的输出 for循环: {% for result in results %} <span class="[something]" > {{result}} </span> <br> {% endfor %} 我是否应该这样做: r
.class-a{
/*一些风格*/
}
.乙级{
/*一些风格*/
}
.c类{
/*一些风格*/
}
d级{
/*一些风格*/
}
这些样式必须应用于djangofor循环的输出
for循环:
{% for result in results %}
<span class="[something]" > {{result}} </span> <br>
{% endfor %}
我是否应该这样做:
results = {
ResultOne : {
'name' : 'someName',
'class' : 'class-a'
},
ResultTwo : {
'name' : 'someName',
'class' : 'class-b'
},
}
所以每个{result}都有类似{result.class}和{{result.name}的东西
还是有其他方法?
实现这一目标的最佳方式是什么?
谢谢。最小化模板中的逻辑
我认为你建议的是方法,即在数据进入模板之前对其进行预处理
使用Django模板,复杂的逻辑将很快变得不可维护和不可读
不要混合使用Python和HTML
像Python代码中的CSS类那样使用class
不是很好,所以可以在您的模型域中调用它,例如
results = [
{
'name' : 'some_name_1',
'result_type' : 'a'
},
{
'name' : 'some_name_2',
'result_type' : 'b'
},
]
并使HTML/CSS只使用该结果类型
解析CSS名称,因此:
<span class="class-{{result.result_type}}"> {{result.name}} </span>
{{result.name}
您可以使用:
{%for result in results%}
{{result}}
{%endfor%}
<span class="class-{{result.result_type}}"> {{result.name}} </span>
{% for result in results %}
<span class="{% cycle "class-a" "class-b" "class-c" "class-d"%}" > {{result}} </span> <br>
{% endfor %}