【问题标题】:overriding module caption names in django admin在 django admin 中覆盖模块标题名称
【发布时间】:2009-09-21 06:36:15
【问题描述】:

默认情况下,管理模型按应用分组,应用名称在标题中(帐户、身份验证等)。如何在不编写管理模板的情况下覆盖标题中的名称?

【问题讨论】:

    标签: django django-admin customization


    【解决方案1】:

    您可以通过元数据选项 app_label 和 db_table 轻松做到这一点

    class model_module1(models.model):
        [...]
    
        class Meta:
            app_label = "Cool module name"
            db_table = "module1_model"
    
    
    class model_module2(models.model):
        [...]
    
        class Meta:
            app_label = "Cool module name"
            db_table = "module2_model"
    

    如果您正确配置表名称,您将看到您的模块如何在管理员的新标签下分组。

    参考:http://docs.djangoproject.com/en/dev/ref/models/options/#app-label

    【讨论】:

    • 我只是收到一个错误:“未找到带有参数 '()' 和关键字参数 '{'app_label': 'My App'}' 的 'app_list' 的反向操作。”
    • 这是一个错误的答案!这仅适用于在已安装应用程序之外定义的模型。
    【解决方案2】:

    目前,django 没有提供任何简单的方法来做到这一点。见this ticket

    【讨论】:

      【解决方案3】:

      此解决方案适用于 Django 2:

      apps.py 文件中:

      from django.apps import AppConfig
      
      class Config(AppConfig):
          name = 'myapp'
          verbose_name = 'My App Name'
      

      settings.py 文件中:

      INSTALLED_APPS = [
          'myapp.apps.Config',
      ]
      

      【讨论】:

        【解决方案4】:

        这可能会有所帮助。您可以更改应用的分组方式,但我认为您不能更改应用名称:

        django-grappelli

        http://code.google.com/p/django-grappelli/

        【讨论】:

          猜你喜欢
          • 2017-08-23
          • 1970-01-01
          • 1970-01-01
          • 2015-03-16
          • 1970-01-01
          • 2021-11-06
          • 2014-08-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多