Ich weiß, das ist alt, aber es verdient eine vollständige Antwort, die in Vorlagen verwendet werden kann.
Wenn Sie es in einer Vorlage verwenden müssen, die bevorzugte Methode Modell Methoden hinzuzufügen ist, die diese Werte zu erhalten, wie zum Beispiel:
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')
Dann lassen Sie uns sagen, instance
ist Ihr Objekt in einer Vorlage, das ist dein Label
<label for="id_phone">{{ instance.phone_label }}</label>
<div id="id_phone">{{ instance.phone }}</div>
Alternativ können Sie einen Template-Tag, dies zu tun schaffen könnten, aber das Modell Methode ist klarer und hält das Modell eigenständig.
Sie können nicht auf eines dieser Felder in einer Vorlage zugreifen. –