Django 无法将UserAdmin fildsets与cutom用户模型一起使用
我试图自定义Django用户,这很好,但我丢失了诸如用户权限之类的东西。 我没有用户权限窗口,我可以从中授予权限,如“可以添加产品,可以删除购物车”等。 我试过这个: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')}), 及 但这些对我不起作用。 如果我尝试将“用户权限”添加
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