django - list_display - bool 图标不适用于 BooleanField

标签 django django-models django-admin

简单情况,模型:

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

和模型管理员:

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

仍然在管理事件列中显示为 True/False,而不是图标。我可以创建方法并设置 Boolean = True 属性,但我失去了列的排序能力。很明显我在这里遗漏了一些东西。

最佳答案

创建自定义方法,然后将 admin_order_field 设置为字段名称,并将 boolean 设置为 True

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

这应该使其可排序( doc )

关于django - list_display - bool 图标不适用于 BooleanField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13464756/

相关文章:

python - 如果在 Django 中输入任何无效数据,则在输入字段下方引发表单错误

python - 如何给Django网站添加文件上传进度条

django - 无法使用以下驱动程序打开数据源 `'

django-models - Django : How to make an unique, 空白模型。CharField?

python - django 中的 post_save 立即更新实例

django - 'staticmethod' 对象没有属性 'short_description'

共享主机中的python MemoryError

python - Django用户ForeignKey和唯一对象名称

python - 对记录的值进行计数和求和,通过 Django 中的外键字典进行过滤

django - 永远不会调用 Django 管理界面中字段的只读方法