Django admin无法正确登录自定义用户模型

问题描述:

我将Django 1.4.5上的应用程序升级到Django 1.5,并完成迁移到自定义用户模型。当我登录到我的应用程序时,使用我自己的身份验证表单,使用我的超级用户凭据(在执行manage.py syncdb时创建),一切正常。Django admin无法正确登录自定义用户模型

我能够得到身份验证,如果我去/admin,我已按预期登录。我能够完美地导航和使用管理面板。不过,如果我尝试从/admin登录到管理面板,使用Django管理登录表单,我得到的错误:

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

我做了一些调查,并认为它可能有一些做ModelAdmin,所以我跟随this example从文档并创建了一个自定义ModelAdmin。但是,问题仍然存在。

任何想法可能导致这种情况?

+0

你AUTH_USER_MODEL settings.py中设置正确:在

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 

重点是什么? – 2013-03-03 03:15:31

+0

是的,我有那套。 – 2013-03-03 03:47:00

+0

您是否为您的用户模型扩展使用了'AbstractUser'或'AbstractBaseUser'? – 2013-03-03 03:58:46

您是否在函数中添加了以下行BaseUserManager?这可能是这样的:

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'到该列表以“专注于”。 – AJJ 2013-09-02 08:07:23