何かが足りない。
Django プロジェクトにカスタム ユーザー モデルがあります。ユーザー名フィールドとして電子メールを使用します。
myproject/users/models.py:
class CustomUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(
verbose_name='E-mail address',
max_length=255,
unique=True,
db_index=True,
)
is_active = models.BooleanField(default=True)
USERNAME_FIELD = 'email'
objects = CustomUserManager()
...
settings.py:
AUTH_USER_MODEL = 'users.CustomUser'
HTML ログイン フォームから POST リクエストを受け取り、株式認証ログイン ビューを呼び出してその応答を取得するビューを作成しました。
myproject/users/views.py:
from django.contrib.auth.views import login
...
def log_in(request, template_name):
response = login(request, template_name=template_name)
return response
(それ以上のことを行いますが、私が見ている望ましくない動作の原因としてそれを排除するために、他のコードをコメントアウトしました。)
ブラウザでログインしようとすると (最初の .xml ファイルを作成したときに作成したスーパーユーザーの電子メール アドレスとパスワードを使用してsyncdb
)、フォーム エラーが発生します。
username: This field is required.
どうして?ストック認証ログインビューは組み込みの auth を使用すると考えました。AuthenticationForm
これは明らかにAbstractBaseUser
.