Django管理仪表板,有没有办法小写模型名称?

时间:2015-01-14 15:56:36

标签: django admin django-grappelli

我正在寻找一种方法来在我的django管理网站中小写模型的第一个字母。

即: model verbose name是" agent-1.0.0"显示为" Agent-1.0.0"在仪表板上,

简单但IDK

grappelli技巧对我也有用。

django - 1.7.1

也 - 只需要一个应用模型组 - 不是我的所有仪表板都应该是小写的... 所以,覆盖index.html效率不高

3 个答案:

答案 0 :(得分:2)

大写字母为hard-coded in the template,与templates in Grappelli相同。

您可以使用catavaran的建议,但这将转换每个模型名称。覆盖模板是一个巨大的痛苦,以维持这么小的东西。

我能想到的唯一可行解决方案是绕过带有空格的capfirst过滤器:

class Meta:
    verbose_name = " agent-1.0.0"

由于capfirst仅强制使用第一个字符,如果第一个字符不是字母,则不会发生任何事情。

答案 1 :(得分:1)

模型名称作为capfirst(model._meta.verbose_name_plural)传递给模板,因此您必须在admin/index.html模板或CSS中将其小写。 Imho CSS选项更简单:

div.module tr[class^=model-] th {
    text-transform: lowercase;
}

如果你只需要小写一些模型(例如User),那么将CSS选择器更改为:

div.module tr.model-user th {
    text-transform: lowercase;
}

答案 2 :(得分:0)

使用Grapelli,您可以通过运行:

创建自定义仪表板
 python manage.py customdashboard

并将您设置的GRAPPELLI_INDEX_DASHBOARD设置为自定义类。

您可以从grappelli提供的Dashboard类扩展此自定义类,并根据您的需要覆盖它。请特别注意ModelList类,您可以在其中为模型指定所需的标题。