2012-01-03 74 views
3

我正在創建一個Django應用程序,用戶可以在其中包含多個電子郵件,包括主要電子郵件。在Django中,SQL用戶表具有單個CharField來存儲單個電子郵件地址。如何在Django中支持多個電子郵件的用戶?

我目前的計劃是創建一個名爲say「EmailAddress」的新模型,然後通過外鍵將此模型鏈接到用戶模型,從而允許多個電子郵件。用戶的主要電子郵件地址存儲在用戶表的email列中。

但是,我想知道是否有一個更有效和可靠的方法來做到這一點。我目前正在存儲兩次主要電子郵件地址,這可能會影響數據的完整性。

謝謝。

回答

5

你的計劃聽起來完全合理。在大多數情況下,我會同意@霍夫的答案,但是,他認爲增加重複字段只是簡化了錯誤的方法。由於外鍵位於EmailAddress,因此您可以在這種情況下無需創建自定義配置文件,但對於幾乎所有其他情況而言,自定義配置文件都是可行的方式。

-1

你應該考慮自定義用戶配置模式:

https://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users

例如

class UserProfile(models.Model): 
    user = models.OneToOneField(User) 
    email_2 = models.CharField() 
    email_3 = models.CharField() 
    # etc 

這Django是很好的支持,你只需指定型號是您的用戶的擴展,在settings.py:

AUTH_PROFILE_MODULE = 'YOURAPP.UserProfile' 

user.get_profile() 

然後,您可以訪問您的擴展用戶模型

+1

謝謝!我覺得使用用戶配置文件會將電子郵件數量限制爲email_ [n]個表格列的數量。 – dangerChihuahua007 2012-01-03 21:33:06

相關問題