问题如图所示,DjangoAdmin
用createsuperuser 创建了管理员,邮箱密码都输对了,就是进不去…… 最后用SQL语句修改了数据库字段倒是能进去了。
解决方案
查看代码,里面可能有一段类似这样的:
from django.contrib.auth.base_user import BaseUserManager
…
class UserManager(BaseUserManager):
…
def create_superuser(self, email, password, **kwargs):
kwargs['is_superuser'] = True
return self._create_user(email, password, **kwargs)
class User(AbstractUser, PermissionsMixin):
username = FixedCharField(…)
…
objects = UserManager()
…
自己做用户类还要覆盖django原来的用户类。执行createsuperuser 时会执行上面的UserManager 里的方法,之前登录不了是因为一个本该为1 的字段不为1 ,在方法中设置为True (即1 )就行了。
def create_superuser(self, email, password, **kwargs):
kwargs['is_superuser'] = True
kwargs['is_staff'] = True
return self._create_user(email, password, **kwargs)
|