Django自定义用户和管理页面的问题

时间:2013-11-25 01:58:31

标签: python django django-admin

我正在使用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

你知道会发生什么吗? =)

1 个答案:

答案 0 :(得分:0)

从文档Custom users and django.contrib.admin开始,要使用管理网站,您需要定义has_permhas_module_perms方法。

此外,您需要按照文档中的说明定义和注册模型管理类。