2012-07-09 7 views
7

napisałem własną metodę stosowaną w list_display (klasa admin), podobnie jak to:Moja własna metoda stosowana w list_display i wartości jako ikonę logiczną

class MyClassAdmin(admin.ModelAdmin): 

    list_display = ('my_own_method') 

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

ale wartość ta jest wyświetlana na liście jako tekst (Prawda czy fałsz), a nie jako domyślne ikony bojanowe django: enter image description here

Co należy zrobić, aby to zmienić?

Odpowiedz

9

Zmień swój kod do następujących:

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 

które można znaleźć w documentation na list_display:

Jeśli łańcuch podany jest metodą modelu, ModelAdmin lub wywoływalnym że zwraca True lub False Django wyświetli ładną ikonę "on" lub "off", jeśli nadasz tej metodzie wartość boolean, której wartość jest True.

Powiązane problemy