在 Django 中进行条件格式化的正确方法是什么?
我有一个包含日期字段的模型,我想显示一个记录列表,但根据该日期字段的值对行进行着色。例如,匹配今天日期的记录我想要黄色,今天之前的记录我想要绿色,今天之后的记录我想要红色。
您需要在 Django 中的某个地方进行比较,将当前日期与记录中的日期进行比较。
我可以看到三个不同的地方可以进行比较:
以下哪种方法是正确的 Django 方法?听起来条件格式是经常出现的东西,而且由于您不能在模板中进行任意比较,因此需要一些其他解决方案。
同样适用于更简单的格式规则,例如,如果我想显示学生成绩列表,并且我想将高于 80% 的成绩设为绿色,将低于 30% 的成绩设为红色。
最佳答案
我非常喜欢将所有“业务”逻辑放在 View 函数中,并将所有演示文稿放在模板/CSS 中。
选项 1 是理想的。您返回一个对列表:( date, state ),其中 state 是类名(“过去”、“现在”、“ future ”)。
然后,您的模板将状态信息用作 <span>
的类。 .然后,您的 CSS 会为该跨度提供颜色编码。
您现在可以在不破坏模板的情况下自由更改规则。无需接触 HTML 或 Python 代码即可更改 CSS。
{% for date,state in the_date_list %}
<span class="{{state}}">date</span>
{% endfor %}
https://stackoverflow.com/questions/1068573/