Hey, ich bin neu bei allauth package. Ich möchte wissen, wie man ein Benutzermodell schreibt, das den All-Auth-Benutzer erweitert. Zum Beispiel möchte ich einen Benutzer haben, der alle Benutzerfelder enthält und auch ein Bild, eine Liste der bevorzugten Textfelder.

Ich würde mich über jede Hilfe sehr freuen !!

0
Gal Fridman 27 Dez. 2015 im 20:48

2 Antworten

Beste Antwort

Sie können das Django-Benutzermodell mit einem OneToOneField(User) erweitern. Hier ist der relevante Teil der Django-Dokumente: Erweitern des vorhandenen Benutzermodells

Wenn Sie es benötigen, können Sie ein benutzerdefiniertes Benutzermodell verwenden, dies ist jedoch schwieriger. In diesem Fall siehe alle benutzerdefinierten Benutzermodelle und Django-Dokumentation

0
fasouto 27 Dez. 2015 im 19:04

Da Sie alle Benutzerfelder mit einigen zusätzlichen Feldern versehen möchten, können Sie das Standardbenutzermodell erben und Ihre benutzerdefinierten Felder hinzufügen.

from django.contrib.auth.models import AbstractUser

class ExtendedUser(AbstractUser):
  favourites = models.charField(max_length=255)
  ....
  ....

Fügen Sie in Ihrer Datei settings.py diese Zeile hinzu

AUTH_USER_MODEL = 'users.ExtendedUser'

Verwenden Sie zum Speichern der zusätzlichen Felder bei der Anmeldung des Benutzers die folgenden Django-Allauth-Signale wie in Ihren Ansichten.

from django.dispatch import receiver
from allauth.account.signals import user_signed_up

@receiver(user_signed_up)
def user_signed_up(request, user, **kwargs)
  #get extra fields from kwargs and save to database
0
tejesh95 29 Dez. 2015 im 15:44