list_display - ícones booleanos para métodos

122

Ao definir a matriz list_display para uma ModelAdminclasse, se a BooleanFieldou NullBooleanFieldfor fornecida, a interface do usuário usará ícones de boa aparência em vez do texto Verdadeiro / Falso na coluna. Se um método que retorna um booleano é fornecido, ele simplesmente imprime True / False.

Existe uma maneira de fazê-lo usar os ícones bonitos para um método booleano?

Jason McClellan
fonte

Respostas:

232

Isso está documentado, embora seja um pouco difícil de encontrar - vá algumas telas abaixo daqui e você encontrará o seguinte:

Se a string fornecida for um método do modelo, ModelAdmin ou um callable que retorne True ou False Django exibirá um ícone bonito "ativado" ou "desativado" se você atribuir ao método um booleanatributo cujo valor seja True.

e o exemplo dado é:

def born_in_fifties(self):
    return self.birthday.strftime('%Y')[:3] == '195'
born_in_fifties.boolean = True
Daniel Roseman
fonte
13
Alguma idéia de como fazê-lo quando você usa o decorador @property ?: "AttributeError: 'property' objeto não tem nenhum atributo 'booleano'" "
Kye Russell
isso é muito útil
minhajul 3/17/17
Lindo! É isso que me faz amar Python + Django.
Nitin Nain