1

Ich möchte Daten speichern, die ich mit allauth Paket nach der Anmeldung mit Facebook erhalten.Benutzer mit django-allauth zusätzliche Daten hinzufügen

Ich habe einen benutzerdefinierten Benutzer:

class AppUser(models.Model): 
    birthdate = models.DateTimeField(null=True, blank=True) 
    address = adress_model.AddressField(null=True, blank=True) 
    image = models.ImageField(upload_to=get_image_path, blank=True, null=True) 
    gender = models.TextField(null=True, blank=True) 
    user = models.OneToOneField(User) 

ich alle Daten in der Datenbank speichern möchte, so kann ich es einfach aus der Datenbank zuzugreifen.

P.S: Wenn Sie mir sagen können, wie ich eine Login-Seite mit Button erstellen kann, die es auch auslöst, wäre es großartig!

+0

Überprüfen Sie diese - http://stackoverflow.com/questions/12303478/how-to-customize-user-profile-when-using-django-allauth –

Antwort

0

können Sie entweder die save() Methode des Modells um die Daten zu extrahieren und speichern:

save(self, *wargs, **kwargs) 
    social_account = self.socialaccount_set.get(provider="facebook") 
    self.first_name = social_account.extra_data['first_name'] 
    super(User, self).save(*wargs, **kwargs) 

Oder Sie können das bereitgestellte Signal von allauth verwenden:

allauth.socialaccount.signals.social_account_added(request, sociallogin) 

prüfen für Signal docs : http://django-allauth.readthedocs.io/en/latest/signals.html