Удосконалення Джанго - адмінки: Кольоровий вивід полів об’єктів

Таке завдання:

В базі даних знаходяться записи моделі Product. Організувати виведення в адміністративному інтерфейсі поля name кольором #сссссс, якщо поле is_active = False.


Варіант рішення:

Для зміни html формату виведення поля в Джанго моделі можливо задати метод довільної назви, який і буде відобрадати поле по-новому:

class Product(models.Model):
    name = models.CharField()
    is_active = models.BooleanField()
    ......

    def colored_name(self):
        color = "424242"
        if not self.is_active:
            color = "cccccc"
        return "%s" % ( color, self.name)

    colored_name.allow_tags = True
    colored_name.admin_order_field = "name"
Як бачимо Джанго дозволяє використовувати метод (яка як усе в питоні є об’єктом), як відобрадення поля в адмінці. Пам’ятайте, про те щоб занести поле в list_display, інакше результат буде марний.

Comments

Popular posts from this blog

Install Kubeflow locally

RabbitMQ and OpenShift