And*_*ler 8 python django formatting django-templates
在Django中进行条件格式化的正确方法是什么?
我有一个包含日期字段的模型,我想显示一个记录列表,但是根据该日期字段的值为行着色.例如,匹配今天我希望为黄色的日期的记录,在今天之前我想要绿色的记录和在我想要红色之后的记录.
在Django的某个地方,您需要进行比较,将当前日期与记录中的日期进行比较.
我可以看到可以进行比较的三个不同的地方:
以下哪种方法是正确的Django方式呢?听起来像条件格式化会经常出现,并且由于您无法在模板中进行任意比较,因此需要一些其他解决方案.
这同样适用于更简单的格式规则,例如,如果我想显示学生成绩列表,我想让那些高于80%绿色和低于30%红色的那些.
我非常喜欢将所有"业务"逻辑放在视图函数和模板/ CSS中的所有表示中.
选项1是理想的选择.您返回一对配对列表:(日期,州),其中州是类名("过去","现在","未来").
然后,您的模板将状态信息用作a的类<span>.然后,您的CSS会为该范围提供颜色编码.
您现在可以自由更改规则而不会破坏模板.您可以在不触及HTML或Python代码的情况下更改CSS.
{% for date,state in the_date_list %}
<span class="{{state}}">date</span>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4656 次 |
| 最近记录: |