4

关于字段有一个类似的问题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,
}

但是考虑下面的截图,我想显示“vCenters”而不是“VCenters”。

我可以删除capfirst, 并明确大写其他模型verbose_name_plural以使其工作。

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

4

1 回答 1

0

那并没那么简单 ....

  • 将 admin/index.html 模板复制到您的 template/admin/index.html
  • 在你自己的 templatetags/my_special_thing.py 目录中创建你自己的模板过滤器:lowerfirst_if_starts_with_v

'

@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>

并做了

于 2012-09-07T12:28:52.867 回答