2016-04-22 11 views
1

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

#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", 
) 

どのように私はこれを達成することができます

enter image description here

私のsettings.pyには、以下の持っていますか?

+0

ない場合、あなたが何をしたいのか明確にすることができます知ってみましょうか?フィールドを追加するためにユーザーモデルを拡張しようとしていますか? –

+0

私は実際にユーザーモデルを拡張しているかどうかはわかりませんが、今は管理インターフェースに入り、手動で名、姓などの属性をユーザーに追加する必要があります。私は登録フォームにこれらのフィールドを入れて、登録が成功するとこのデータが新しく作成されたユーザーのために自動的に保存されるようにします。 – Nitish

+0

私はあなたがしたいことを知っていると思う、私の答えを下に見てください –

答えて

2

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

だからあなたのモデルファイルでこの

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' 

をしたいし、その後残りはこのフォームページ

を訪問したときに、このユーザモデルを使用する必要がありますジャンゴいます

私はこれが助けてくれることを願っています!私はそれがAbtractBaseUserを拡張するので、これは自動的にパスワードを扱う必要があると考えてい

EDIT

は、私はそれが

+0

それは、コンソールで私を与える> django.core.exceptions.ImproperlyConfigured:AUTH_USER_MODELは、インストールされていないモデル 'flights.CustomUser'を指します。移行する前に、移行する必要がありますか? – Nitish

+0

あなたが移行する必要があります。 –

+0

移行するときに同じエラーが表示される – Nitish