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):
        

您可以在此处找到类似问题的答案: