Отображение галочек и перекрестных значков для свойства в консоли администрирования Django

в Администраторе Django если поле является BooleanField или NullBooleanField, Django будет отображать довольно значок "вкл" или "выкл" вместо True или False.

теперь у меня действительно нет BooleanField в моей модели, у меня есть свойство fior, которое я хотел бы отобразить значки, но когда я пытаюсь это сделать, Django кричит, что 'SomeAdmin.list_filter[0]' refers to 'is_activated' which does not refer to a Field.

можно ли отображать эти милые маленькие значки для этого поля без взлома Django слишком много.

спасибо

1 ответов


вы не хотите использовать list_filter. Имущество вы почувствуете list_display. В документации приведен пример создания столбца, который ведет себя как логическое значение на дисплее. Короче, вы делаете что-то вроде этого:

  1. создайте метод в классе:

    def is_activated(self)
        if self.bar == 'something':
            return True
        return False
    
  2. добавить .boolean атрибут метода непосредственно под is_activated способ:

    is_activated.boolean = True
    
  3. добавить метод как поле в list_display:

    класс MyAdmin(ModelAdmin): list_display = ['name', 'is_activated']

  4. вы заметите, что имя столбца, вероятно, теперь "активировано" или что-то в этом роде. Если вы хотите изменить заголовок столбца, используйте short_description способ атрибутов:

    is_activated.short_description = "Activated"