【问题标题】:Django Admin list view: add CSS class for rows by field valueDjango Admin列表视图:按字段值为行添加CSS类
【发布时间】:2014-08-23 23:35:36
【问题描述】:

示例模型:

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

有没有一种简单的方法可以将“is_published”css 类添加到 Django 管理列表视图中的所有显示对象的行中,其中 is_published==True?

【问题讨论】:

  • docs.djangoproject.com/en/dev/ref/contrib/admin/… - 覆盖管理模板,并在那里添加自定义类。
  • 是的,这似乎是唯一的方法,我会尝试使用它。我只需要了解如何访问模板中的 is_published 字段(我只是在结果中得到整个 ... html)
  • 如果您愿意使用 JavaScript,这可能是一个更优雅的解决方案。只需编写一个脚本来扫描行并根据单元格中的值更改类。您可以使用class MediaModelAdmin 类添加自定义js & css。

标签: python css django django-admin


【解决方案1】:

我不太确定这是否是您要查找的内容。以下示例以红色字体显示所有“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 list display

【讨论】:

  • 谢谢,但这还不够。我需要突出显示整行(如 row1 和 row2 类)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-21
  • 2019-04-04
  • 2015-03-28
  • 2013-09-14
  • 2014-11-16
  • 2023-03-06
相关资源
最近更新 更多