12

Django1.4.5で使用していたアプリをDjango1.5にアップグレードし、カスタムユーザーモデルへの移行を完了しました。自分の認証フォームを使用して、スーパーユーザーの資格情報(実行時に作成されたmanage.py syncdb)を使用してアプリにログインすると、すべてが正常に機能します。

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

スタッフアカウントの正しいメールアドレスとパスワードを入力してください。どちらのフィールドでも大文字と小文字が区別される場合があることに注意してください。

私はいくつかの調査を行い、それが何かと関係があるのではないかと考えたので、ドキュメントからこの例ModelAdminに従い、カスタムを作成しました。ただし、問題は解決しません。ModelAdmin

これを引き起こしている可能性のあるアイデアはありますか?

4

4 に答える 4

9

create_superuserの下にある関数に次の行を追加しましたBaseUserManagerか? 次のようになります。

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

焦点を合わせる:

    new.is_active = True
    new.is_staff = True
    new.is_superuser = True
于 2013-03-23T23:34:05.147 に答える