Ответ 1
Для Django < 1,10:
model._meta.get_field_by_name('location_x')[0].verbose_name
Я хотел бы иметь доступ к одному полю моей модели 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}>
Если кто-то видит то же самое, вы можете найти строку для подробного имени в функции члена title() объекта-прокси.
model._meta.get_field_by_name(header)[0].verbose_name.title()
Лучше всего написать это:
model._meta.get_field(header).verbose_name.title()
где header
будет именем интересующего вас поля, т.е. "location-x" в контексте OPs.
ПРИМЕЧАНИЕ. Разработчики Django также считают, что использование get_field
лучше и, следовательно, обесценилось get_field_by_name
в Django 1.10. Поэтому я бы предложил использовать get_field
независимо от того, какую версию Django вы используете.
model._meta.get_field_by_name('location_x')[0].verbose_name
Для Django 1.11 и 2.0:
MyModel._meta.get_field('my_field_name').verbose_name
Дополнительная информация в Django doc