根据字段的值设置字段的背景颜色

时间:2010-05-14 13:52:03

标签: django templates django-templates

我有一个Customer表,其中一个字段是Status ....我希望根据它的值设置包含此字段的单元格的背景颜色,例如绿色表示“已关闭”状态;黄色表示状态为“待定”等。

这样做的最佳方式是什么......如果将来需要的话,可能会很容易修改?

2 个答案:

答案 0 :(得分:7)

在你的css创建td类,如下所示,考虑到你想在html表中显示你的客户表信息,

td.closed{ color: green; }
td.pending{ color: yellow; }

现在在您的模板上,您可以在html表上循环数据库表,在td上可以调用css,如下所示:

<td class="{{ status|lower }}">{{ status }}</td>

希望有所帮助

答案 1 :(得分:1)

上次我做了类似这样的事情我已经枚举了必须翻译成其他语言的雕像的值,所以我不能在CSS中依赖于status的字符串值作为类,所以我使用了choices像这样:

models.py

中定义choices
class SomeModel(models.Model):
    STATUS_CHOICES = (
       (1, _('Pending')),
       (2, _('Closed')),
    )
    status = models.IntegerField(choices=STATUS_CHOICES)

HTML看起来像这样:

<td class="color_{{ model_instance.status }}">
    {{ model_instance.status.get_status_display }}
</td>

你的CSS应该类似于:

td.color_1{ color: green; }
td.color_2{ color: yellow; }

基本上你可以在不改变CSS的情况下改变状态字符串值,如果状态是由外键连接的枚举值,也可以这样做。还有其他方法可以做到,但mmrs151给出的答案在大多数情况下是最简单和充分的。