2010-03-20 35 views

回答

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)) 
+0

定義了「逃逸」功能在哪裏? – 2011-06-20 22:08:42

+0

@Mandx - 在'django.utils.html'我已經更新了答案。 – Alasdair 2011-06-21 12:01:55

+0

而我假設'mark_safe'是'django.utils.safestring'中的一個:)請更新答案,以便新手和新手不會感到困惑。 – 2011-06-21 15:42:43

1

爲什麼不把友好名稱存儲在單獨的CharField中?或者,您可以繼承EmailField並構建您自己的驗證。請參閱http://docs.djangoproject.com/en/1.1/howto/custom-model-fields/#howto-custom-model-fields

+0

我要走這條路。但是,這更多的是我想知道EmailField是否可以做到,或者我做錯了什麼。 – 2010-03-20 22:16:53

+1

EmailField基本上是一個CharField,但只對純文本電子郵件地址進行驗證 - 沒有名稱或尖括號。所以,不,你沒有做錯什麼。 – jnns 2010-03-20 22:39:45

相關問題