29

django-registration が django 1.5 とカスタム ユーザー モデルをサポートしていない場合。私はdjango-allauthを使用しようとしていますが、一見すると素晴らしい製品です。

問題があります-ユーザー名フィールドが必要ですが、アプリにはユーザー名がありません。したがって、allauth のドキュメントには次のように記載されています。

**Available settings:**
ACCOUNT_AUTHENTICATION_METHOD (="username" | "email" | "username_email")

使用するログイン方法を指定します。ユーザーがユーザー名、電子メール アドレス、またはその両方を入力してログインするかどうかを指定します。

OK、完了しましたが、エラーが発生しました:

AssertionError at /accounts/signup/
No exception supplied

models.py:

class MyUser(AbstractBaseUser, PermissionsMixin):
    title = models.CharField ('Name', max_length=100)
    email = models.EmailField('Email', max_length=255, unique=True)
    ...

設定.py

ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_AUTHENTICATION_METHOD = ('email')
AUTH_USER_MODEL = 'internboard.MyUser'

私が間違っていることは何ですか?

4

3 に答える 3

56

ありがとう、私は自分のタスクに適した設定を見つけました:

ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_USERNAME_REQUIRED = False
于 2013-10-30T13:25:50.923 に答える
38

django.core.exceptions.FieldDoesNotExist: Account has no field named 'username'スタックトレースでを参照してエラーが発生した場合は、 (またはユースケースに適したフィールド)に設定するUSER_MODEL_USERNAME_FIELD必要もあります。必要な設定の完全なセットは次のとおりです。ACCOUNT_USER_MODEL_USERNAME_FIELDNone

ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
ACCOUNT_USERNAME_REQUIRED = False

この設定は、カスタム ユーザー モデルの django-allauth ドキュメントで詳細に説明されており、デフォルトはConfigurationで概説されています。

于 2016-07-26T17:42:47.083 に答える