1

認証と登録に Django-rest-auth を使用しています。パスワードを使用してユーザーにログインするために電子メールを使用しています。登録時にユーザーの名と姓を保存したい(おそらく、さらにいくつかのフィールド)。つまり、登録フォームのクライアント側には、次のフィールド (電子メール、パスワード、名、姓など) があります。現在、登録フォームには電子メール、パスワード 1、パスワード 2 のフィールドしかなく、登録は基本的に成功しています。

ここに画像の説明を入力

私のsettings.pyには次のものがあります:

#This is required otherwise it asks for email server
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True   
ACCOUNT_USERNAME_REQUIRED = False

#Following is added to enable registration with email instead of username
AUTHENTICATION_BACKENDS = (
# Needed to login by username in Django admin, regardless of `allauth`
"django.contrib.auth.backends.ModelBackend",

#`allauth` specific authentication methods, such as login by e-mail
"allauth.account.auth_backends.AuthenticationBackend", 
)

どうすればこれを達成できますか?

4

1 に答える 1

3

登録フォームを拡張したい場合は、より多くのフィールドを持つ独自のカスタム ユーザーを作成する必要があります。

したがって、モデルファイルにはこれがあります

from django.contrib.auth.models import (
   AbstractBaseUser, PermissionsMixin,
)

class CustomUser(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(max_length=254, unique=True)
    first_name = models.TextField(default='')
    last_name = models.TextField(default='')
    #any other fields you want

    USERNAME_FIELD = 'email'

次に、設定でこれが必要です

AUTH_USER_MODEL = 'app_name.CustomUser'

そして、このフォームページにアクセスしたときと同じように、django restはこのユーザーモデルを使用する必要があります

これが役立つことを願っています!

編集

これはAbtractBaseUserを拡張するため、パスワードを自動的に処理する必要があると思います。そうでない場合はお知らせください

于 2016-04-22T18:26:23.533 に答える