2013-03-03 23 views
8

私はDjango 1.4.5上のアプリケーションをDjango 1.5にアップグレードし、カスタムユーザモデルへの移行を終了しました。自分の認証フォームを使用して自分のアプリにログインすると、スーパーユーザの資格情報(manage.py syncdbを実行したときに作成されたもの)ですべて正常に動作します。Django管理者がカスタムユーザモデルで正しくログインしない

私は認証を受けることができます。/adminに行くと、私はすでに期待どおりにログインしています。私はナビゲートし、管理パネルを完全に使用することができます。私は、Djangoの管理者のログインフォームを使用して、/adminから管理パネルにログインしようとした場合しかし、私はエラーを取得する:

Please enter the correct email and password for a staff account. Note that both fields may be case-sensitive.

私はいくつかの調査とそれがModelAdminとは何かを持っていると考えていなかったので、I docsからthis exampleが続き、カスタムが作成されました。ModelAdminしかし、問題は依然として続く。

何が原因なのですか?

+0

:上

class CustomUserManager(BaseUserManager): def create_user(self, username, email, password=None): if not username: raise ValueError('Dude you need a username.') if not email: raise ValueError( 'type an e-mail..') new_user = self.model( username=username, email=CustomUserManager.normalize_email(email)) new_user.set_password(password) new_user.save(using=self._db) return new_user def create_superuser(self, username, email, password): new = self.create_user( username, email, password=password ) new.is_active = True new.is_staff = True new.is_superuser = True new.save(using=self._db) return new 

フォーカス:それはこのようになりますか? –

+0

うん、私はそのセットを持っている。 –

+0

Userモデル拡張に 'AbstractUser'または' AbstractBaseUser'を使用しましたか? –

答えて

4

create_superuser機能には、BaseUserManager以下の行を追加しましたか?あなたはsettings.pyに設定AUTH_USER_MODEL、権利を持っている

new.is_active = True 
    new.is_staff = True 
    new.is_superuser = True 
+2

djangoの管理者はユーザーをログインするための 'request.user.is_active'と' request.user.is_staff'をチェックします。 'new.is_active = True'を" focus on "に設定します。 – AJJ

関連する問題