Django 自定义用户 'Account' 对象没有属性 'has_module_perms'
Django custom user 'Account' object has no attribute 'has_module_perms'
我创建了一个自定义用户模型来通过电子邮件登录,但是当我尝试登录管理频道时遇到了一些问题
from django.db import models
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
class MyAccountManajer(BaseUserManager):
def create_user(self, first_name, last_name, username, email, password=None):
if not email:
raise ValueError('User must have an email address')
if not username:
raise ValueError('User must have an username')
user = self.model(
email = self.normalize_email(email),
username = username,
first_name = first_name,
last_name = last_name,
)
user.set_password(password)
user.save(using=self.db)
return user
def create_superuser(self, first_name, last_name, username, email, password):
user = self.create_user(
email = self.normalize_email(email),
password= password,
username = username,
first_name = first_name,
last_name = last_name,
)
user.is_admin = True
user.is_active = True
user.is_staff = True
user.is_superadmin = True
user.save(using=self.db)
return user
我可以创建超级用户。但是,当我尝试使用电子邮件登录时。我收到这个错误
异常类型:属性错误
异常值:'Account' 对象没有属性 'has_module_perms'
异常位置:....\env\lib\site-packages\django\utils\functional.py, line 241, inner
有人可以解决这个问题吗?
您需要将“PermissionsMixin”添加到您的class以获得您需要的方法
from django.contrib.auth.models import PermissionsMixin
class MyAccountManajer(AbstractBaseUser, PermissionsMixin):
您可以在此处找到类似问题的答案:
我创建了一个自定义用户模型来通过电子邮件登录,但是当我尝试登录管理频道时遇到了一些问题
from django.db import models
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
class MyAccountManajer(BaseUserManager):
def create_user(self, first_name, last_name, username, email, password=None):
if not email:
raise ValueError('User must have an email address')
if not username:
raise ValueError('User must have an username')
user = self.model(
email = self.normalize_email(email),
username = username,
first_name = first_name,
last_name = last_name,
)
user.set_password(password)
user.save(using=self.db)
return user
def create_superuser(self, first_name, last_name, username, email, password):
user = self.create_user(
email = self.normalize_email(email),
password= password,
username = username,
first_name = first_name,
last_name = last_name,
)
user.is_admin = True
user.is_active = True
user.is_staff = True
user.is_superadmin = True
user.save(using=self.db)
return user
我可以创建超级用户。但是,当我尝试使用电子邮件登录时。我收到这个错误 异常类型:属性错误 异常值:'Account' 对象没有属性 'has_module_perms' 异常位置:....\env\lib\site-packages\django\utils\functional.py, line 241, inner
有人可以解决这个问题吗?
您需要将“PermissionsMixin”添加到您的class以获得您需要的方法
from django.contrib.auth.models import PermissionsMixin
class MyAccountManajer(AbstractBaseUser, PermissionsMixin):
您可以在此处找到类似问题的答案: