list_display: iconos booleanos para métodos

122

Al definir la matriz list_display para una ModelAdminclase, si se proporciona una BooleanFieldo NullBooleanFieldla UI usará iconos atractivos en lugar de texto verdadero / falso en la columna. Sin embargo, si se proporciona un método que devuelve un valor booleano, simplemente imprime Verdadero / Falso.

¿Hay alguna manera de hacer que use los bonitos iconos para un método booleano?

Jason McClellan
fuente

Respuestas:

232

Esto está documentado, aunque es un poco difícil de encontrar: baje un par de pantallas desde aquí y encontrará esto:

Si la cadena dada es un método del modelo, ModelAdmin o un invocable que devuelve True o False Django mostrará un bonito icono de "encendido" o "apagado" si le da al método un booleanatributo cuyo valor es True.

y el ejemplo dado es:

def born_in_fifties(self):
    return self.birthday.strftime('%Y')[:3] == '195'
born_in_fifties.boolean = True
Daniel Roseman
fuente
13
¿Alguna idea de cómo hacerlo cuando usa el decorador @property ?: "AttributeError: el objeto 'propiedad' no tiene atributo 'booleano'"
Kye Russell
esto es muy útil
minhajul
¡Hermoso! Esto es lo que me hace amar a Python + Django.
Nitin Nain