Hey alle, ich bin ziemlich sicher, dass dies ein ziemlich häufiges Problem ist. Also, um ein Konto auf meiner Website zu registrieren, benötigen Sie eine E-Mail-Adresse aus bestimmten Schul-Domäne (wie Facebook). Das wäre kein so großes Problem, bis Sie anfangen, andere Apps, wie Django-Benachrichtigung und Django-Registrierung und Django-Socialregistration, in Ihre Site zu integrieren, wo sie E-Mails über user.email senden.Sauberste Möglichkeit, mehrere E-Mail-System in Django zu implementieren?
Ich habe meine Benutzer gefragt, und die meisten von ihnen wollen eine "active_email" -Option - das bedeutet, dass sie die E-Mail an ihre vorgesehene Gmail oder was auch immer ändern können.
Ich habe mit der folgenden Lösung zu kommen, die nicht das sauberste von allen ist: Zuerst erbe ich von Benutzern in django.contrib.auth und rufen Sie diese neue Klasse MultipleEmailUser, mit email = active_email und official_email = sch_email.
Dann überschreibe ich django.contrib.auth UserManager, um die API leicht zu ändern, Und der schmerzhafteste Teil ist, den gesamten Quellcode zu ändern, der User.object.find() zu MultipleEmailUser.find() hat.
Kann mir jemand einen saubereren Weg vorschlagen? (Mein größter Kopfschmerz entsteht durch andere Apps, die nur das Senden von E-Mails an User.email erlauben.)
Nachdem ich das weiter erforscht habe, glaube ich, dass Sie völlig richtig sind. Django Puristen werden definitiv diesen Rat beherzigen und meinen ignorieren! –