简体   繁体   English

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

[英]Django Custom User and problems with the admin page

Im using Django 1.6 and I created a custom user and a custom manager just like that: 我使用的是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']

Im having some problemas with runing the "admin" page in my localhost/admin and says that 我在本地主机/管理员中运行“管理员”页面时遇到一些问题,并说

NotImplementedError at /admin/ / admin /中的NotImplementedError

Do you have any idea of what could be happening? 您是否知道会发生什么? =) =)

From the documentation Custom users and django.contrib.admin , to work with admin site, you need to define has_perm and has_module_perms methods. 从文档“ 自定义用户”和django.contrib.admin ,要使用管理站点,您需要定义has_permhas_module_perms方法。

Also, you need to define and register model admin class as explained in the doc. 另外,您需要按照文档中的说明定义和注册模型管理类。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM