9

在 Django 管理界面中,我们将模型按应用分组。好吧,我知道如何自定义模型名称:

class MyModel (models.Model):
  class Meta:
    verbose_name = 'My Model'
    verbose_name_plural = 'My Models'   

但我无法自定义应用名称。应用程序是否有任何详细名称?

4

3 回答 3

22

由于 django 1.7 app_label 不起作用。您必须遵循https://docs.djangoproject.com/en/1.7/ref/applications/#for-application-authors说明。那是:

  1. apps.py在您的应用程序目录中创建
  2. 写详细的名字:

    # myapp/apps.py
    
    from django.apps import AppConfig
    
    class MyAppConfig(AppConfig):
        name = 'myapp'
        verbose_name = "Rock ’n’ roll"
    
  3. 在项目的设置更改中INSTALLED_APPS

    INSTALLED_APPS = [
        'myapp.apps.MyAppConfig',
        # ...
    ]
    

    或者,您可以保留myapp.appsINSTALLED_APPS让您的应用程序默认加载此 AppConfig 子类,如下所示:

    # myapp/__init__.py
    
    default_app_config = 'myapp.apps.MyAppConfig'
    

所有的 :)

于 2015-02-27T14:05:52.937 回答
1

在模型中使用 Meta 类并在那里定义 app_label 是可行的,但很可能您必须为模块中的每个模型都这样做。

另一种方法是实际使用i18n. 在你的 po 文件中,如果你用你的app_label定义一个msgid你应该很好。

在您的应用中,添加/编辑 po 文件 *app_label > locale > ru > django.po*

#set app label string 
msgid <app_label>
msgstr "Ваше приложение этикетке"

你可以在这里阅读更多关于国际化和翻译的信息

于 2013-10-08T21:21:31.137 回答
-1

app_labelattr 添加到您的MyModel内部META

class MyModel (models.Model):
  class Meta:
    verbose_name = 'My Model'
    verbose_name_plural = 'My Models'
    app_label = 'wow_app_name'
于 2013-03-29T00:08:55.533 回答