我想在表單中使用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