Установить цвет фона для поля в зависимости от его значения - PullRequest
2 голосов
/ 14 мая 2010

У меня есть таблица Customer, и одно из полей здесь для Status .... Я хочу, чтобы цвет фона ячейки, содержащей это поле, был установлен в соответствии с его значением, например, зеленый для статуса "Закрыто"; желтый для статуса "Ожидание" и так далее.

Каков наилучший способ сделать это ... возможно, что-то, что будет легко изменить, если потребуется в будущем?

Ответы [ 2 ]

7 голосов
/ 14 мая 2010

В вашем css создать класс для td следующим образом, учитывая, что вы хотите отобразить информацию о вашей таблице клиентов в html-таблице,

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

Теперь в вашем шаблоне вы можете зациклить свою таблицу базы данных на своей HTML-таблице, а на тд вы можете вызвать css следующим образом:

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

Надеюсь, что поможет

1 голос
/ 14 мая 2010

В прошлый раз, когда я делал что-то подобное, я перечислил значения для статуй, которые должны были быть переведены на другие языки, поэтому я не мог позволить себе зависеть от строкового значения status как класса в CSS, поэтому я использовал choices как это:

Определите вариантов в вашем models.py

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 является наиболее простым и достаточным в большинстве случаев.

...