2017-09-08 1 views
0

Ich benutze django-allauth und habe das Benutzermodell um das untenstehende Modell erweitert. Wenn ich jedoch zu accounts/signup/ gehe, dann sind die einzigen Felder, die in dem Formular angezeigt werden, diejenigen in dem Standardbenutzermodell. Benötigt allauth ein benutzerdefiniertes Anmeldeformular, um die anderen Felder anzuzeigen?django allauth erweitertes Benutzermodell - Standard-Anmeldeformular verwenden

models.py

class User(AbstractUser): 
    MR = 'Mr' 
    MRS = 'Mrs' 
    MISS = 'Miss' 
    MS = 'Ms' 
    DR = 'Dr' 
    SIR = 'Sir' 
    PROF = 'Prof' 
    REV = 'Rev' 
    TITLE_CHOICES = (
     (MR, 'Mr'), 
     (MRS, 'Mrs'), 
     (MISS, 'Miss'), 
     (DR, 'Dr'), 
     (SIR, 'Sir'), 
     (PROF, 'Prof'), 
     (REV, 'Rev'), 
    ) 
    title = models.CharField(max_length=5, null=True, choices=TITLE_CHOICES) 
    date_of_birth = models.DateField() 
    primary_phone = PhoneNumberField() 


    def __str__(self): 
     return self.username 

Relevante Einstellungen:

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend', 
    'allauth.account.auth_backends.AuthenticationBackend', 
) 

ACCOUNT_AUTHENTICATION_METHOD = 'email' 
ACCOUNT_EMAIL_REQUIRED = True 
ACCOUNT_USERNAME_REQUIRED = False 
ACCOUNT_SIGNUP_PASSWORD_ENTER_TWICE = False 
ACCOUNT_EMAIL_VERIFICATION = 'mandatory' 
ACCOUNT_ALLOW_REGISTRATION = env.bool('DJANGO_ACCOUNT_ALLOW_REGISTRATION', default=True) 

ACCOUNT_FORMS = {'login': 'switcher5.users.forms.LoginForm', 
       # 'signup': 'switcher5.users.forms.ProfileForm', 
       # no longer using a onetoonefield profile model 
       'reset_password': 'switcher5.users.forms.ResetPasswordForm'} 

ACCOUNT_ADAPTER = 'switcher5.users.adapter.AccountAdapter' 
SOCIALACCOUNT_ADAPTER = 'switcher5.users.adapter.SocialAccountAdapter' 


AUTH_USER_MODEL = 'users.User' 

Antwort

0

auf den Quellcode der Suche, nicht allauth Anmelden Form nicht alle Felder verwenden, die in den Einstellungen definiert in dem Benutzermodell vorhanden sind. Aber nur Benutzername, E-Mail und Passwort wie in den allauth Einstellungen festgelegt.

Um zusätzliche Felder in einem benutzerdefinierten Benutzermodell zu verwenden. Sie müssen das Anmeldeformular aus allen Auth und Einstellungen ändern Unterklasse, die verwenden:

zB

ACCOUNT_FORMS = {'login': 'switcher5.users.forms.LoginForm', 
       'signup': 'switcher5.users.forms.ProfileForm', 
       'reset_password': 'switcher5.users.forms.ResetPasswordForm'}