Django Admin 列表视图:按字段值为行添加 CSS 类

5 投票
1 回答
2885 浏览
提问于 2025-04-18 11:57

示例模型:

class Article(models.Model):
    is_published = models.BooleanField(default=False)

有没有简单的方法可以在Django的管理界面列表视图中,给所有显示is_published为True的对象的行添加一个叫“is_published”的CSS类?

1 个回答

2

我不太确定这是不是你想要的。下面这个例子会把所有“is_published”字段的内容用红色字体显示出来,前提是“is_published==True”。

class Article(models.Model):
    is_published = models.BooleanField(default=False)

    def colored_is_published(self):
        if self.is_published:
            cell_html = '<span style="color: red;">%s</span>'
        else:
            cell_html = '<span>%s</span>'
        # for below line, you may consider using 'format_html', instead of python's string formatting
        return cell_html % self.is_published   
    colored_is_published.allow_tags = True

class ArticleAdmin(admin.ModelAdmin):
    list_display = (......, 'colored_is_published')

参考资料:Django 列表显示

撰写回答