Nomes de colunas de exibição de lista de administração do Django

No aplicativo de administração do Django, você pode facilmente alterar quais colunas aparecem para a visualização de lista de um determinado modelo. Por exemplo, se eu tiver um modelo “Gerente” e quiser exibir o número de subordinados em seu item de linha no administrador, isso é fácil, supondo que o modelo tenha um método para contar subordinados (diremos que sim ):Manager.underlings_count()

class ManagerAdmin(admin.ModelAdmin):
list_display
= ('__unicode__', 'underlings_count')

Mas e se eu não quiser que o cabeçalho da coluna seja chamado de ‘Contagem de subordinados’? O nome é muito descritivo e bom em código, mas em admin ‘contagem’ é apenas espaço perdido – se você estiver olhando para uma lista de números, obviamente é uma contagem.

A solução alternativa para alterá-lo é super simples:

class ManagerAdmin(admin.ModelAdmin):
list_display
= ('__unicode__', 'underlings')

def underlings(self, obj):
# in this context, obj is the Manager instance for this line item
return obj.underlings_count()

Estrondo. Coluna renomeada apenas definindo uma função proxy.