2012-07-09 10 views
7

ho scritto il mio metodo utilizzato in list_display (classe admin), in questo modo:Il mio metodo utilizzato in list_display e di valore come icona booleano

class MyClassAdmin(admin.ModelAdmin): 

    list_display = ('my_own_method') 

    def my_own_method(self, obj): 
     if [condition]:  
      return True 
     else: 
      return False 

ma questo valore viene visualizzato nella lista come testo (True o False), non come predefinito icone booleane di django come questa: enter image description here

Cosa devo fare per cambiare questo?

risposta

9

modificare il codice al seguente:

class MyClassAdmin(admin.ModelAdmin): 

    list_display = ('my_own_method') 

    def my_own_method(self, obj): 
     if [condition]:  
      return True 
     else: 
      return False 
    my_own_method.boolean = True 

che si trova nella documentation su list_display:

Se la stringa data è un metodo del modello, ModelAdmin o un richiamabile che restituisce Vero o Falso Django visualizzerà una bella icona "on" o "off" se si assegna al metodo un attributo booleano il cui valore è True.

Problemi correlati