Ich implementiere social-app-django (nicht die veraltete; die, die auf Python-social-auth beruht) mit Django 1.11 (nicht mit Mongo). Meine Anwendung muss viele Daten von Benutzern speichern und bearbeiten, die nicht zu den Konten gehören, die bei der Anmeldung von ihren Social Media-Konten abgerufen werden.Benutzermodell oder benutzerdefinierte Pipeline in Social-App-Django erweitern
Ich muss keine zusätzlichen Daten abrufen oder sammeln, wenn der Benutzer sich authentifiziert, aber verschiedene Aktionen, die sie auf meiner Site ausführen, müssen in ihrem Benutzermodell gespeichert werden. Ich frage mich, welche der folgenden Ansätze bevorzugt wird (ich habe ausgiebig online recherchiert, kann aber nicht eine bestimmte Erklärung, warum finden eine gegen das andere verwenden):
mein eigenes Benutzermodell erstellen in meinem App models.py (nennen Sie es
MyUser
), die nichts Besonderes erweitert, und fügen Sie dann eine Funktion in der Authentifizierungspipeline, die den Social-App-Django-Benutzer mit einer entsprechenden Instanz vonMyUser
verbindet. Belassen SieAUTH_USER_MODEL
undSOCIAL_AUTH_USER_MODEL
unverändert.oder ...
erstellen mein eigenes Benutzermodell in models.py meine App und in der settings.py des Projekts
AUTH_USER_MODEL
undSOCIAL_AUTH_USER_MODEL
-MyUser
zu zeigen. Lassen Sie die Pipeline unverändert. In diesem Fall habe ich mich gefragt, ob jemand klären könnte, wasMyUser
und sein Manager erweitern sollte und was ich in modules.py importieren muss (ich bin verwirrt, weil viele Stack-Überlauf-Posts auf veraltete Versionen dieses Moduls und auf I verweisen) behalte immer Fehler). In diesem Fall sollte ich auch beideAUTH_USER_MODEL
undSOCIAL_AUTH_USER_MODEL
, oder nur eine davon?
Erzielen diese beiden Methoden im Wesentlichen die gleiche Sache? Ist eine mehr zuverlässig/aus irgendeinem Grund bevorzugt? Oder sollte ich beides tun? Vielen Dank für jede Hilfe. Ein weiteres Detail: Ich möchte nicht nur von der App, die ich gerade erstelle, auf die Benutzerdatenbank zugreifen können, sondern auch von anderen Apps (innerhalb des gleichen Django-Projekts), die ich in Zukunft erstellen werde. Beeinflusst das irgendetwas?