Python Django总是将一个模型';管理索引页中的详细名称

Python Django总是将一个模型';管理索引页中的详细名称,python,django,django-admin,Python,Django,Django Admin,关于字段的详细名称,也有一个类似的问题: 在管理索引页面中列出应用程序的可用型号时,Django始终将型号的详细名称\u复数形式的首字母大写,并将其用作型号名称 以下是以下代码: 但是考虑下面的内容,我想显示“VCCORE”而不是“VCCENCE”。p> 我可以删除capfirst,并显式大写其他模型的verbose\u name\u复数,以使其正常工作 但是我必须修改django的源代码,它似乎不是django的bug。有更好的解决方案吗?没那么容易 将admin/index.html模板复

关于字段的
详细名称
,也有一个类似的问题:

在管理索引页面中列出应用程序的可用型号时,Django始终将型号的
详细名称\u复数形式的首字母大写,并将其用作型号名称

以下是以下代码:

但是考虑下面的内容,我想显示“VCCORE”而不是“VCCENCE”。p> 我可以删除

capfirst
,并显式大写其他模型的
verbose\u name\u复数
,以使其正常工作


但是我必须修改django的源代码,它似乎不是django的bug。有更好的解决方案吗?

没那么容易

  • 将admin/index.html模板复制到您的 template/admin/index.html
  • 创建您自己的模板筛选器:如果在您的 自己的templatetags/my_special_thing.py目录
"

  • 将其加载到index.html中
"

  • 将其应用于第23行的index.html
"



完成后

您可以将AdminSite子类化,并根据需要修改其添加索引功能。除了覆盖
AdminSite
的不太短的
index
方法之外,您还必须了解管理站点的内部结构,以便插入子类@安德烈的回答似乎是合理的。
model_dict = {
    'name': capfirst(model._meta.verbose_name_plural),
    'perms': perms,
}
@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:]
{%load my_special_thing%}
<th scope="row"><a href="{{ model.admin_url }}"> \
{{ model.name|lowerfirst_if_starts_with_v }}</a></th>