【问题标题】:Customising Django Admin Interface自定义 Django 管理界面
【发布时间】:2011-09-06 07:46:35
【问题描述】:

在 Django Admin 中,在更改列表视图的右上角有一个 Add <model_name> 按钮。

有人知道如何更改该按钮中的默认文本吗?

更新

我想把Add这个词改成别的词

【问题讨论】:

    标签: django django-admin


    【解决方案1】:

    changelist 视图呈现 django/contrib/admin/templates/admin 目录中的 change_list.html 文件。

    具体来说,你要修改的sn-p是

    {% block content %}
      <div id="content-main">
        {% block object-tools %}
          {% if has_add_permission %}
            <ul class="object-tools">
              {% block object-tools-items %}
                <li>
                  <a href="add/{% if is_popup %}?_popup=1{% endif %}" class="addlink">
                    {% blocktrans with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktrans %}
                  </a>
                </li>
              {% endblock %}
            </ul>
          {% endif %}
        {% endblock %}
    

    因此,坏消息是您所看到的“添加”用户界面字符串是硬编码的。

    好消息是,您仍然可以通过在自己的项目 templates/admin/ 目录中创建自己的 change_list.html 模板来覆盖它。具体细节在 django 文档中进行了解释:- https://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-admin-templates

    特别是在您的情况下,它只是在您自己的 change_list.html 文件中覆盖 object-tools 块。

    【讨论】:

      【解决方案2】:

      您需要更新您的 Django 管理模板。您要查找的模板是django/contrib/admin/templates/admin/change_list.html。查找addlink,下面的那一行应该是要更改的单词。

      【讨论】:

        【解决方案3】:

        这是您的模型的名称。

        Django默认使用模型的类名,但是你可以通过Meta.verbose_name

        来改变它
        class MyModel(models.Model):
            name = models.CharField()
            class Meta:
                verbose_name = u"a_new_name"
        

        【讨论】:

        • 感谢您的回答。我也遇到了verbose_name,但我没有在我的问题中说清楚。我想更改整个文本。
        猜你喜欢
        • 2018-06-27
        • 2016-04-17
        • 2012-12-11
        • 1970-01-01
        • 2011-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-28
        相关资源
        最近更新 更多