大家好,我很确定这是一个相当普遍的问题。 因此,为了注册我的网站帐户,您需要来自特定学校域(例如 Facebook)的电子邮件地址。在您开始将其他应用程序(例如 django-notification、django-registration 和 django-socialregistration)集成到您的网站(通过 user.email 发送电子邮件)之前,这不会是一个大问题。
我问过我的用户,他们中的大多数人都想要一个“active_email”选项 - 这意味着他们可以将电子邮件更改为他们指定的 gmail 或其他任何名称。
我提出了以下解决方案,但它并不是最干净的: 首先,我继承 django.contrib.auth 中的 User 并将这个新类称为 MultipleEmailUser,其中 email=active_email 和ficial_email=sch_email。
然后我重写 django.contrib.auth 的 UserManager 来稍微更改 API, 而最痛苦的部分是将所有具有 User.object.find() 的源代码更改为 MultipleEmailUser.find()。
有人可以建议我一种更干净的方法吗? (我最头痛的是其他应用程序只允许向 User.email 发送电子邮件。)
最佳答案
您不需要或不想修改 User 类。只需设置一个带有 OneToOneField 的 UserProfile 类返回 User,然后设置 AUTH_PROFILE_MODULE 即可。请参阅the documentation .
关于django - 在 django 中实现多电子邮件系统的最简洁方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4688893/