Django EmailField和带有名字和姓氏的完整电子邮件地址

时间:2010-03-20 22:07:10

标签: django email

我想在表单中使用EmailField。但是,而不是只存储

support@acme.com

我想存储

"ACME Support" <support@acme.com>

原因是,当我发送电子邮件时,我想要一个“友好名称”出现。 可以这样做吗?

3 个答案:

答案 0 :(得分:3)

我们使用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))

答案 1 :(得分:1)

为什么不将友好名称存储在单独的CharField中?或者,您可以继承EmailField并构建自己的验证。见http://docs.djangoproject.com/en/1.1/howto/custom-model-fields/#howto-custom-model-fields

答案 2 :(得分:0)

Django的EmailField可以直接存储显示名称。您不需要单独的模型字段。