Ich würde vorschlagen, was folgt, als ich machte cogofly Ich hatte dieses große Problem, wo einige Leute (einige aber einige von ihnen tun) klicken Sie manchmal auf "Einloggen mit Google" und manchmal auf "Einloggen mit Facebook" und Das ist die gleiche Person! Seien Sie also vorsichtig damit und diese Lösung wird Ihnen helfen, ein solches Problem zu vermeiden. Das einzige, an das man sich erinnern sollte: Es gibt nur einen Primärschlüssel für alle sozialen Netzwerke: die E-Mail.
Like it's written in the documentation, ich würde eine OneToOne
Verbindung zum User
Modell machen. Daraus würde ich dies vorschlagen:
- genau das Datum der ersten Anmeldung
- genau das Datum der letzten Anmeldung
- präzise, wenn das Konto
Wie dies bestätigt wird:
from django.contrib.auth.models import User
class Person(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
is_activated = models.BooleanField(default=False)
Und machen Sie eine soziale Login-Modell, wo Sie genau wie der Benutzer lo gged in:
class SocialLogin(BaseModel):
S_GOOGLE = 1
S_FACEBOOK = 2
TAB_S_LOGIN = {
S_GOOGLE: _("Google"),
S_FACEBOOK: _("Facebook"),
}
logged_in = models.IntegerField(
choices=[(a, b) for a, b in list(TAB_S_LOGIN.items())],
default=S_GOOGLE)
date_first_login = models.DateTimeField(auto_now_add=True,
verbose_name=_('First login'))
date_last_login = models.DateTimeField(auto_now=True,
verbose_name=_('Last login'))
person = models.OneToOneField(Person, on_delete=models.CASCADE)
def logged_in_desc(self):
return SocialLogin.TAB_S_LOGIN[self.logged_in]
def __str__(self):
return '{}/{}'.format(
self.logged_in_desc(),
description if self.description is not None else '?')
Mein besten Rat ist, Benutzer ein benutzerdefiniertes Benutzermodell (siehe Dokumentation) [https://docs.djangoproject.com/en/1.11/topics/auth/customizing/] und die Folgendes (Tutorial) [https://simpleisbetterthancomplex.com/tutorial/2016/07/22/how-to-extend-django-user-model.html] könnte helfen, wie es geht. – deaspo
Danke! Links sind gebrochen. Oh ich sehe es die Klammer, danke – Daggepagge
https://simpleisbetterthancomplex.com/tutorial/2016/07/22/how-to-e-tend-django-user-model.html – deaspo