Je souhaite utiliser l'EmailField dans un formulaire. Cependant, au lieu de ne stocker que
support@acme.com
Je veux stocker
"ACME Support" <support@acme.com>
La raison en est que lorsque j'envoie un e-mail, je souhaite qu'un "nom convivial" apparaisse. Cela peut-il être fait?
Réponses:
3 pour la réponse № 1Nous utilisons le champ e-mail de Django, puis utilisons une propriété pour rendre le nom convivial dans l'e-mail.
from django.utils.html import escape
from django.utils.safestring import mark_safe
class MyModel(models.Model):
email_address = models.EmailField()
full_name = models.CharField(max_length=30)
...
@property
def friendly_email(self):
return mark_safe(u"%s <%s>") % (escape(self.fullname), escape(self.email_address))
1 pour la réponse № 2
Pourquoi ne pas stocker le nom convivial dans un CharField séparé? Alternativement, vous pouvez sous-classer EmailField et créer votre propre validation. Voir http://docs.djangoproject.com/en/1.1/howto/custom-model-fields/#howto-custom-model-fields