【问题标题】:Django admin dashboard, is there a way to lowercase model name?Django 管理仪表板,有没有办法将模型名称小写?
【发布时间】:2015-03-12 21:13:11
【问题描述】:

我正在寻找一种在我的 django 管理站点中将模型的首字母小写的方法。

即: 模型详细名称为“agent-1.0.0”在仪表板上显示为“Agent-1.0.0”,

简单但 IDK

grappelli 技巧也对我有用。

django - 1.7.1

另外 - 只需要一个应用程序模型组 - 并非我的所有仪表板都应该是小写的...... 所以,覆盖 index.html 并不是那么高效

【问题讨论】:

    标签: django admin django-grappelli


    【解决方案1】:

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

    您可以使用 catavaran 的建议,但这会改变每个模型名称。为这么小的东西维护覆盖模板是一件非常痛苦的事情。

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

    class Meta:
        verbose_name = " agent-1.0.0"
    

    由于capfirst只是将第一个字符强制大写,所以如果第一个字符不是字母,则不会发生任何事情。

    【讨论】:

      【解决方案2】:

      模型名称作为 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;
      }
      

      【讨论】:

      • 谢谢,但我只针对某些型号 - 我会编辑我的 Q - 抱歉
      【解决方案3】:

      使用 Grapelli,您可以通过运行以下命令创建自定义仪表板:

       python manage.py customdashboard
      

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

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

      【讨论】:

        【解决方案4】:

        对于那些不想覆盖 Django 管理类的人来说,有一种 CSS 方式。覆盖和扩展templates/admin/base_site.html模板如下:

        {% extends "admin/base_site.html" %}
        
        {% block extrahead %}
            <style>
                h1.model-title {text-transform: lowercase;}
                h1.model-title:first-letter {text-transform: uppercase;}
            </style>
        {% endblock %}
        
        {% block content_title %}
            {% if title %}<h1 class="model-title">{{ title }}</h1>{% endif %}
        {% endblock %}
        

        这将使每个content_title 的第一个字母大写。

        您可以使用相同的方式在管理表和侧边栏中使用小写模型名称。但是,我想指出,默认模型的verbose_nameverbose_name_plural 不应该大写。这将在您的项目中为您节省大量覆盖,就像我在上面提供的那样规范化 change_list 标头。

        【讨论】:

          猜你喜欢
          • 2017-03-04
          • 2022-01-05
          • 2019-11-11
          • 2011-11-10
          • 2021-04-17
          • 2011-05-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多