我正在使用Django 1.6,我创建了一个自定义用户和一个自定义管理器:
class MyManager(BaseUserManager): #create_user, create_superuser
def _create_user(self, username, dni, password, is_staff, is_superuser, **extra_dields):
if not username:
raise ValueError('Debes ingresar un Username')
#Hace referencia al usuario personalizado de abajo
user = self.model(username=username, dni=dni, is_active=True, is_staff=is_staff, is_superuser=is_superuser, **extra_dields)
user.set_password(password)
user.save(using=self._db)
return user
#El manager para crear un usuario sin permisos
def create_user(self, username, dni, password=None, **extra_dields):
return self._create_user(username, dni, password, False, False, **extra_dields)
#El manafer para crear usuarios con permisos
def create_superuser(self, username, dni, password, **extra_dields):
return self._create_user(username, dni, password, True, True, **extra_dields)
class Usuario(AbstractBaseUser, PermissionsMixin):
dni = models.IntegerField(unique=True)
username = models.CharField(unique=True, max_length=100)
nombre = models.CharField(max_length=140)
appelidos = models.CharField(max_length=200)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
objects = MyManager()
#Campo con el que se va a identificar en el sistema
USERNAME_FIELD = 'username'
REQUIRED_FIELDS = ['dni']
我在localhost / admin中运行“admin”页面时遇到了一些问题,并说明了
/ admin /
中的NotImplementedError你知道会发生什么吗? =)
答案 0 :(得分:0)
从文档Custom users and django.contrib.admin
开始,要使用管理网站,您需要定义has_perm
和has_module_perms
方法。
此外,您需要按照文档中的说明定义和注册模型管理类。