Sé que esto es viejo, pero merece una respuesta completa que puede usarse en plantillas.
Si necesita utilizarlo en una plantilla, el método preferido es añadir métodos modelo que obtienen estos valores, tales como:
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')
Entonces, digamos instance
es su objeto en una plantilla, esta es su etiqueta
<label for="id_phone">{{ instance.phone_label }}</label>
<div id="id_phone">{{ instance.phone }}</div>
Como alternativa, puede crear una etiqueta de plantilla para hacer esto, pero el método modelo es más clara y mantiene el modelo autónomo.
No puede acceder a ninguno de estos campos en una plantilla. –