Как в 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