Как в Django инвертировать красивые иконки "да", "нет" для поля BooleanField в админке?

Когда в вашей модели есть поле BooleanField, на сайте Django Admin отображаются круглые значки:

  • зеленая галочка "True"
  • красный крестик для "Ложь"

В документации Django эти значки называются "красивыми":

Если поле является BooleanField, Django отобразит красивый значок "да", "нет" или "неизвестно" вместо True, False или None.

выглядит отлично! но мое BooleanField называется "pending", поэтому если pending = True, я хочу, чтобы Django Admin сайта отображал красный X вместо зеленой галочки. Потому что зеленый цвет означает "хорошо", а красный - "плохо". Большинство моих записей не отложены, поэтому список полон красных иконок X, это выглядит плохо, я хочу, чтобы вместо них были в основном зеленые галочки

Я знаю, что могу добавить def в модель с return not self.pending, но это отображает слова "True" и "False" вместо этого, я хочу значки.

Вы можете установить boolean=True при определении пользовательского поля администратора следующим образом

@admin.register(YourModel)
class YourAdmin(admin.ModelAdmin):
    list_display = ('pk', 'is_not_pending')

    @admin.display(description='Is not pending', boolean=True)
    def is_not_pending(self, obj):
        return not obj.pending
Вернуться на верх