9

Django 管理インターフェイスでは、モデルをアプリごとにグループ化しています。さて、私はモデル名をカスタマイズする方法を知っていました:

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

しかし、アプリ名をカスタマイズできませんでした。アプリの verbose_name はありますか?

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 を追加しますMyModelMETA

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 に答える