2012-11-20 38 views
0

簡單的情況下,模型:list_display - 布爾圖標不工作的BooleanField

class Manufacturer(models.Model): 
    name = models.CharField(max_length=200) 
    slug = models.SlugField(max_length=200, null=True) 
    active = models.BooleanField() 
    ... 

而且的ModelAdmin:

class ManufacturerAdmin(admin.ModelAdmin): 
    search_fields = ['name'] 
    list_filter = ['assortment_type', 'active'] 
    ordering = ('priority',) 
    prepopulated_fields = {'slug':('name',),} 
    list_display = ('name', 'active') 

還是在管理活動列顯示爲真/假而不是圖標。我可以創建方法並設置Boolean = True屬性,但是我失去了對列的排序能力。很明顯,我在這裏錯過了一些東西。

回答

3

創建一個自定義方法,然後設置admin_order_field字段名和boolean爲真

def my_function(self): 
    # your stuff goes here 
my_function.boolean = True 
my_function.admin_order_field = 'active' 

這應該使它排序(doc

+1

感謝您快速的注意,這是很好的工作 - 但是我只是想知道爲什麼這只是與BooleanField不同。 – Edke