Отображать значки галочек и крестиков для свойства в административной консоли Django - PullRequest
8 голосов
/ 19 сентября 2011

В админке 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 Ответ

21 голосов
/ 19 сентября 2011

Вы не хотите использовать 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_activation']

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

    is_activated.short_description = "Activated"
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...