Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用自定义模型验证在管理员中登录_Python_Django_Django Admin_Django Authentication - Fatal编程技术网

Python 使用自定义模型验证在管理员中登录

Python 使用自定义模型验证在管理员中登录,python,django,django-admin,django-authentication,Python,Django,Django Admin,Django Authentication,因此,我在django中使用名为accounts的模型进行身份验证,而不是使用默认用户。一切正常,但当我尝试登录django管理员时,它不允许我登录,它说用户不正确,尽管从控制台创建了一个名为“manage.py createsuperuser”的用户 有什么想法吗? 我的代码 models.py class AccountsManager(BaseUserManager): def create_superuser(self, email, username, password):

因此,我在django中使用名为accounts的模型进行身份验证,而不是使用默认用户。一切正常,但当我尝试登录django管理员时,它不允许我登录,它说用户不正确,尽管从控制台创建了一个名为“manage.py createsuperuser”的用户

有什么想法吗? 我的代码

models.py

class AccountsManager(BaseUserManager):
    def create_superuser(self, email, username, password):
        user = self.create_user(email=email,
            password=password,
        )
        user.is_admin = True
        user.save(using=self._db)
        return user

class accounts(AbstractBaseUser):
    username = models.CharField(max_length=50, null=True, unique=True)
    name = models.CharField(max_length=50, null=True)
    lastname = models.CharField(max_length=50, null=True)
    is_active = models.BooleanField(default=True)
    is_admin = models.BooleanField(default=False)

    def get_full_name(self):
        return self.email

    def get_short_name(self):
        return self.email

    def __str__(self):              # __unicode__ on Python 2
        return self.email

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

    def has_module_perms(self, app_label):
        return True

    @property
    def is_staff(self):
        return self.is_admin

    objects = AccountsManager()    

    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = ['email']

解决了,错误是我没有注册用户 改变

为了

class AccountsManager(BaseUserManager):
    def create_superuser(self, email, username, password):
        user = self.create_user(email=email,
            password=password,
        )
        user.is_admin = True
        user.save(using=self._db)
        return user

class accounts(AbstractBaseUser):
    username = models.CharField(max_length=50, null=True, unique=True)
    name = models.CharField(max_length=50, null=True)
    lastname = models.CharField(max_length=50, null=True)
    is_active = models.BooleanField(default=True)
    is_admin = models.BooleanField(default=False)

    def get_full_name(self):
        return self.email

    def get_short_name(self):
        return self.email

    def __str__(self):              # __unicode__ on Python 2
        return self.email

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

    def has_module_perms(self, app_label):
        return True

    @property
    def is_staff(self):
        return self.is_admin

    objects = AccountsManager()    

    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = ['email']
user = self.create_user(email=email,
        password=password,
    )
user = self.create_user(email=email,
        password=password,
        username=username
    )