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

标签 python django django-admin

关于字段的 verbose_name 有一个类似的问题:How 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的bug。有没有更好的解决方案?

最佳答案

没那么容易...

  • admin/index.html 模板复制到您的 template/admin/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>

完成。

关于python - Django 总是在管理索引页面中将模型的详细名称大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12316259/

相关文章:

python - Django ORM - 没有级联删除多对多关系

django - 如何使用约束限制外键下拉列表?

Python Flask,上传文件 - 引发 BuildError(端点,值,方法)

python - 将 str 类型的字典转换为 float Python

javascript - 是否可以使用“with”模板标签从 Django 模板中使用 JavaScript 生成的文本

python - Django:在 DateTimeField 中添加 auto_now 时出现错误

Django:model.py 中添加的新类未显示在管理站点中

python - Django:如何在管理表单中的“历史记录”按钮旁边添加一个操作按钮 - 干净利落?

python - 使用 matplotlib 散点图函数指向错误的 z 坐标

python - 通过 beautifulsoup css 选择器检索多个标签