モデルフィールドのverbose_nameにアクセスしたいのですが。
こんな感じで現地で入手できます
model._meta._fields()[2].verbose_name
動的に取得する必要があります。理想的にはこのようなものになります
model._meta._fields()['location_x'].verbose_name
いくつか調べましたが、見つかりません。
Django <1.10の場合:
model._meta.get_field_by_name('location_x')[0].verbose_name
model._meta.get_field('location_x').verbose_name
選択した答えは、以下のようなプロキシオブジェクトを提供します。
<Django.utils.functional.__proxy__ object at 0x{SomeMemoryLocation}>
誰かが同じものを見ている場合は、詳細名の文字列を 題名() プロキシオブジェクトのメンバー関数。
model._meta.get_field_by_name(header)[0].verbose_name.title()
これを書くより良い方法は:
model._meta.get_field(header).verbose_name.title()
ここで、header
は、関心のあるフィールドの名前になります。つまり、OPコンテキストの「location-x」です。
[〜#〜]ノート[〜#〜]:Djangoの開発者もget_field
の方が良いため、価値が低下しましたget_field_by_name
in Django 1.10。したがって、get_field
Djangoのどのバージョンを使用しているかに関係なく。
model._meta.get_field_by_name('location_x')[0].verbose_name
すべてのフィールドを反復処理する場合は、field
を取得する必要があります。
for f in BotUser._meta.get_fields():
if hasattr(f, 'verbose_name'):
print(f.verbose_name)