我想在表单中使用EmailField。然而,而不是仅存储Django EmailField和完整的电子邮件地址,姓氏和名字
[email protected]
我想存储
"ACME Support" <[email protected]>
的原因是,当我发送电子邮件,我想一个“昵称”的出现。 可以这样做吗?
我想在表单中使用EmailField。然而,而不是仅存储Django EmailField和完整的电子邮件地址,姓氏和名字
[email protected]
我想存储
"ACME Support" <[email protected]>
的原因是,当我发送电子邮件,我想一个“昵称”的出现。 可以这样做吗?
我们使用Django的电子邮件字段,然后使用属性在电子邮件中呈现友好名称。
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))
为什么不把友好名称存储在单独的CharField中?或者,您可以继承EmailField并构建您自己的验证。请参阅http://docs.djangoproject.com/en/1.1/howto/custom-model-fields/#howto-custom-model-fields
我要走这条路。但是,这更多的是我想知道EmailField是否可以做到,或者我做错了什么。 – 2010-03-20 22:16:53
EmailField基本上是一个CharField,但只对纯文本电子邮件地址进行验证 - 没有名称或尖括号。所以,不,你没有做错什么。 – jnns 2010-03-20 22:39:45
定义了“逃逸”功能在哪里? – 2011-06-20 22:08:42
@Mandx - 在'django.utils.html'我已经更新了答案。 – Alasdair 2011-06-21 12:01:55
而我假设'mark_safe'是'django.utils.safestring'中的一个:)请更新答案,以便新手和新手不会感到困惑。 – 2011-06-21 15:42:43