2012-11-20 31 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