web-dev-qa-db-ja.com

Django管理アプリケーションでフィールドラベルを変更できますか?

タイトルが示すように。管理アプリケーションの単一フィールドのラベルを変更できるようにしたい。 Form.field属性を知っていますが、ModelまたはModelAdminにその情報を渡すにはどうすればよいですか?

44
Josh Smeaton

フィールドの 詳細名 は、フィールド構築時の(オプションの)最初のパラメーターです。

70
Javier

フィールドがプロパティ(メソッド)の場合、short_descriptionを使用する必要があります。

class Person(models.Model):
    ...

    def address_report(self, instance):
        ...
    # short_description functions like a model field's verbose_name
    address_report.short_description = "Address"
24
Seperman

Javierが提案したように、model.pyのフィールドで冗長名を使用できます。以下の例、

class Employee(models.Model):
     name = models.CharField(max_length = 100)
     dob = models.DateField('Date Of Birth')
     doj = models.DateField(verbose_name='Date Of Joining')
     mobile=models.IntegerField(max_length = 12)
     email = models.EmailField(max_length=50)
     bill = models.BooleanField(db_index=True,default=False)
     proj = models.ForeignKey(Project, verbose_name='Project')

ここで、dob、doj、およびprojファイルは、それらのフィールドに記載されているverbose_nameに従って、管理フォームに名前を表示します。

17

ハビエルの答えに基づいてフォームの1つのラベル(フロントエンド)とadminの別のラベルが必要な場合は、モデルに内部(admin)ラベルを設定し、フォームに上書きするのが最善です。もちろん、管理者はモデルフィールドのラベルを自動的に使用します。

4
muhuk

メタオプション

次のように、内部クラスMetaを使用してモデルのメタデータを提供します。

from Django.db import models

class MyClassName(models.Model):

    class Meta:
        verbose_name = "Question"
        verbose_name_plural = "Questions"

人間が読める単数形および複数形の名前(verbose_nameおよびverbose_name_plural)。必須ではありません。モデルにクラスMetaを追加することは完全にオプションです。

2
Majid Zandi