2017-09-08 24 views
0

私はdjango-allauthを使用しており、以下のモデルでユーザーモデルを拡張しました。 しかし、accounts/signup/に行くと、フォームに表示される唯一のフィールドは、デフォルトユーザーモデルのフィールドだけです。 allauthは他のフィールドを表示するためにカスタムサインアップフォームが必要ですか?django allauth拡張ユーザーモデル - 既定のサインアップフォームを使用

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 

関連する設定:

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' 

答えて

0

ソースコードを見るとは、allauth登録フォームは、設定で定義されたユーザモデルに存在するすべてのフィールドを使用しません。しかし、allauthの設定では、ユーザー名、電子メール、パスワードのみが設定されます。

カスタムユーザーモデルで追加のフィールドを使用するには。あなたはそれを使用するすべての認証および変更設定から申し込みフォームをサブクラス化する必要があります。

例えば

ACCOUNT_FORMS = {'login': 'switcher5.users.forms.LoginForm', 
       'signup': 'switcher5.users.forms.ProfileForm', 
       'reset_password': 'switcher5.users.forms.ResetPasswordForm'} 
関連する問題