【发布时间】:2019-05-22 01:00:28
【问题描述】:
我想在表单中使用 EmailField。但是,不仅仅是存储
support@acme.com
我要收藏
"ACME Support" <support@acme.com>
原因是,当我发送电子邮件时,我希望出现一个“友好名称”。 这个可以吗?
【问题讨论】:
我想在表单中使用 EmailField。但是,不仅仅是存储
support@acme.com
我要收藏
"ACME Support" <support@acme.com>
原因是,当我发送电子邮件时,我希望出现一个“友好名称”。 这个可以吗?
【问题讨论】:
我们使用 Django 的 email 字段,然后使用一个属性来渲染邮件中的友好名称。
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))
【讨论】:
escape 函数在哪里定义?
mark_safe 是来自django.utils.safestring 的那个:) 请更新答案,以免新手和新人感到困惑。
为什么不将友好名称存储在单独的 CharField 中?或者,您可以将 EmailField 子类化并构建您自己的验证。见http://docs.djangoproject.com/en/1.1/howto/custom-model-fields/#howto-custom-model-fields
【讨论】: