44๐
unicode(ContactData._meta.get_field('name').verbose_name)
unicode(ContactData._meta.get_field('name').help_text)
unicode(ContactData._meta.get_field('phone').verbose_name)
unicode(ContactData._meta.get_field('phone').help_text)
16๐
I know this is old, but it deserves a full answer that can be used in templates.
If you need to use it in a template, the preferred method is to add model methods that get these values, such as:
from django.db import models
from six import text_type
class ContactData(models.Model):
name = models.CharField(max_length=300, verbose_name=u"Name", help_text=u"Please enter your name...",null=True, blank=False)
phone = models.CharField(max_length=300, verbose_name=u"Phone number", null=True, blank=False)
def __get_label(self, field):
return text_type(self._meta.get_field(field).verbose_name)
def __get_help_text(self, field)
return text_type(self._meta.get_field(field).help_text)
@property
def name_label(self):
return self.__get_label('name')
@property
def name_help_text(self):
return self.__get_help_text('name')
@property
def phone_label(self):
return self.__get_label('phone')
@property
def phone_help_text(self):
return self.__get_help_text('phone')
Then, let us say instance
is your object in a template, this is your label
<label for="id_phone">{{ instance.phone_label }}</label>
<div id="id_phone">{{ instance.phone }}</div>
Alternatively, you could create a template tag to do this, but the model method is clearer and keeps the model self contained.
- [Django]-How to escape {{ or }} in django template?
- [Django]-Django.request logger not propagated to root?
- [Django]-What does on_delete=models.PROTECT and on_delete=models.CASCADE do on Django models?
- [Django]-Django post_save() signal implementation
- [Django]-Django development server reload takes too long
- [Django]-Adding links to full change forms for inline items in django admin?
1๐
django-etc application has model_field_verbose_name
and model_field_help_text
template tags to access the data you asked from templates: http://django-etc.rtfd.org/en/latest/models.html#model-field-template-tags
- [Django]-Simply save file to folder in Django
- [Django]-Accessing function as attribute in a Python class
- [Django]-Case insensitive unique model fields in Django?
1๐
Example from a view:
return render(
request,
'projects/create_edit_project.html',
{
'form': form,
'model_field_meta_data':
extract_model_field_meta_data(form),
}
)
extract_model_field_meta_data
extracts help_text
for each model field referenced by the ModelForm
form
:
def extract_model_field_meta_data(form):
""" Extract meta-data from the data model fields the form is handling. """
meta_data = dict()
for field_name, field_data in form.base_fields.items():
meta_data[field_name] = {
'help_text': getattr(field_data, 'help_text', '')
}
return meta_data
Then in the template:
<p class="help-block">{{ model_field_meta_data.title.help_text }}</p>
title
is a field in the model.
- [Django]-Django vs. Model View Controller
- [Django]-Which Stack-Overflow style Markdown (WMD) JavaScript editor should we use?
- [Django]-How do I add a placeholder on a CharField in Django?
0๐
You can show this as follows:
>>> ContactData._meta.fields
[<django.db.models.fields.AutoField: id>,
<django.db.models.fields.CharField: name>,
<django.db.models.fields.CharField: phone>]
>>> ContactData._meta.fields[1].help_text
u'Please enter your name...'
- [Django]-Managing static files for multiple apps in Django
- [Django]-Set up a scheduled job?
- [Django]-Can you give a Django app a verbose name for use throughout the admin?