Django 无法将UserAdmin fildsets与cutom用户模型一起使用

Django 无法将UserAdmin fildsets与cutom用户模型一起使用,django,django-models,Django,Django Models,我试图自定义Django用户,这很好,但我丢失了诸如用户权限之类的东西。 我没有用户权限窗口,我可以从中授予权限,如“可以添加产品,可以删除购物车”等。 我试过这个: from django.contrib.auth.admin import UserAdmin fieldsets = UserAdmin.fieldsets + ('Custom fields set', {'fields': ('email', 'staff')}), 及 但这些对我不起作用。 如果我尝试将“用户权限”添加

我试图自定义Django用户,这很好,但我丢失了诸如用户权限之类的东西。 我没有用户权限窗口,我可以从中授予权限,如“可以添加产品,可以删除购物车”等。 我试过这个:

from django.contrib.auth.admin import UserAdmin

fieldsets = UserAdmin.fieldsets + ('Custom fields set', {'fields': ('email', 'staff')}),

但这些对我不起作用。 如果我尝试将“用户权限”添加到字段集,则会出现错误 “指定了未知字段‘用户权限’”

我需要定义用户权限字段吗

class UserManager(BaseUserManager):
    def create_user(self,email,password=None,is_active=True,is_staff=False,is_admin=False):
        if not email:
            raise ValueError("Users must have email")
        if not password:
            raise ValueError("Users must have password")
        user_obj = self.model(
        email = self.normalize_email(email)
        )
        user_obj.staff = is_staff
        user_obj.admin = is_admin
        user_obj.active = is_active
        user_obj.set_password(password)  #inbuild hashing
        user_obj.save(using = self._db)
        return user_obj

    def create_staffuser(self,email,password=None):
        user = self.create_user(email,password=password,is_staff=True)
        return user

    def create_superuser(self,email,password=None):
        user = self.create_user(email,password=password,is_staff=True,is_admin=True)
        return user

class User(AbstractBaseUser):
    email    = models.EmailField(unique=True,max_length=255)
    # full_name= models.CharField(max_length=100)
    active   = models.BooleanField(default=True)
    staff    = models.BooleanField(default=False)
    admin    = models.BooleanField(default=False)
    timestamp= models.DateTimeField(auto_now_add=True)
    # confirmed= models.BooleanField(default=False) #confirmed email?

    USERNAME_FIELD  = 'email'
    REQUIRED_FIELDS = []
    objects = UserManager()

    def __str__(self):
        return self.email

    def get_full_name(self):
        return self.email

    def has_perm(self,perm,obj=None):
        return True

    def has_module_perms(self,app_label):
        return True
这就是我的管理员当前的样子。

在创建自定义用户模型时,必须使用类

from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin


class User(AbstractBaseUser, PermissionsMixin):
    # your fields
从django.contrib.auth.models导入AbstractBaseUser,PermissionsMixin
类用户(AbstractBaseUser,PermissionsMixin):
#您的字段
非常感谢:)当我这样做并迁移时,我得到了3个额外的列“组”、“用户权限”和一个。我向字段集添加了“用户权限”。
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin


class User(AbstractBaseUser, PermissionsMixin):
    # your fields