Удосконалення Джанго - адмінки: Кольоровий вивід полів об’єктів
Таке завдання:
В базі даних знаходяться записи моделі 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
Post a Comment