This is documented, although it's a bit hard to find - go a couple of screens down from here, and you'll find this:
If the string given is a method of the model, ModelAdmin or a callable that returns True or False Django will display a pretty "on" or "off" icon if you give the method a
boolean
attribute whose value isTrue
.
and the example given is:
def born_in_fifties(self):
return self.birthday.strftime('%Y')[:3] == '195'
born_in_fifties.boolean = True
Thanks to @daniel-roseman (rtfm)
Since Django 3.2 there is a decorator @admin.display(boolean=True)
:
If the string (in
list_display
) given is a method of the model,ModelAdmin
or a callable that returnsTrue
,False
, orNone
, Django will display a pretty “yes”, “no”, or “unknown” icon if you wrap the method with thedisplay()
decorator passing theboolean
argument with the value set toTrue
:
class Person(models.Model):
birthday = models.DateField()
@admin.display(boolean=True)
def born_in_fifties(self):
return 1950 <= self.birthday.year < 1960
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With