Django总是在管理索引页面中将模型的详细名称大写

时间:2012-09-07 10:25:17

标签: python django django-admin

有一个关于字段verbose_nameHow to stop auto-capitalization of verbose_name in django

的类似问题

当在管理索引页面中列出应用程序的可用模型时,Django总是将模型的verbose_name_plural的第一个字母大写并将其用作模型的名称。

以下是django.contrib.admin.sites.py的代码:

model_dict = {
    'name': capfirst(model._meta.verbose_name_plural),
    'perms': perms,
}

但请考虑以下screenshot,我想显示“vCenters”而不是“VCenters”。

我可以移除capfirst,并明确地将其他模型“verbose_name_plural大写,以使其有效。”

但我必须更改django的源代码,它似乎不是Django的错误。有没有更好的解决方案?

1 个答案:

答案 0 :(得分:0)

这并不容易......

  • 将admin / index.html模板的副本复制到您的 模板/管理/ index.html的
  • 创建自己的模板过滤器:lowerfirst_if_starts_with_v 拥有templatetags / my_special_thing.py目录

@register.filter(is_safe=True)
@stringfilter
def lowerfirst_if_starts_with_v(value):
    """Lowercase the first character of the value."""
    return value and value[0] =='v' and value[0].lower() + value[1:]
  • 将其加载到index.html

{%load my_special_thing%}
  • 将其应用于第23行的index.html

<th scope="row"><a href="{{ model.admin_url }}"> \
{{ model.name|lowerfirst_if_starts_with_v }}</a></th>

并完成了