Django 管理インターフェイスでは、モデルをアプリごとにグループ化しています。さて、私はモデル名をカスタマイズする方法を知っていました:
class MyModel (models.Model):
class Meta:
verbose_name = 'My Model'
verbose_name_plural = 'My Models'
しかし、アプリ名をカスタマイズできませんでした。アプリの verbose_name はありますか?
django 1.7 以降 app_label は機能しません。https://docs.djangoproject.com/en/1.7/ref/applications/#for-application-authorsの指示に従う必要があります。あれは:
apps.py
アプリのディレクトリに作成します詳細な名前を書く:
# myapp/apps.py
from django.apps import AppConfig
class MyAppConfig(AppConfig):
name = 'myapp'
verbose_name = "Rock ’n’ roll"
プロジェクトの設定変更でINSTALLED_APPS
:
INSTALLED_APPS = [
'myapp.apps.MyAppConfig',
# ...
]
または、そのままmyapp.apps
にINSTALLED_APPS
して、アプリケーションがデフォルトでこの AppConfig サブクラスを次のようにロードするようにすることもできます。
# myapp/__init__.py
default_app_config = 'myapp.apps.MyAppConfig'
すべて:)
モデル内で Meta クラスを使用し、そこに app_label を定義すると機能しますが、ほとんどの場合、モジュール内の各モデルに対してこれを行う必要があります。
別のアプローチは、実際に使用することi18n
です。po ファイルで、app_labelを使用してmsgidを定義すると、うまくいくはずです。
アプリで、po ファイルを追加/編集します *app_label > locale > ru > django.po*
#set app label string
msgid <app_label>
msgstr "Ваше приложение этикетке"
国際化についてはこちら、翻訳についてはこちらで詳しく読むことができます。
内部クラスにapp_label
attr を追加しますMyModel
META
class MyModel (models.Model):
class Meta:
verbose_name = 'My Model'
verbose_name_plural = 'My Models'
app_label = 'wow_app_name'