首页 > 解决方案 > 自定义用户注销时 is_active 不会改变

问题描述

我正在研究自定义用户模型,但注销功能与 root 密码不同步。当我注销时,is_active(此处已激活)变量不会更改为 False,并且当在前端用户中按下注销按钮时,登录 Django admin 的超级用户会注销。如何解决这个问题。

模型.py

class Users(AbstractBaseUser, PermissionsMixin):
    objects = UserManager()
    mobile_no = models.IntegerField(_('MobNumber'), null=True, blank=True,unique=True)
    email = models.EmailField(_('Email'), max_length=75, null=False, blank=False)
    first_name = models.CharField(_('FirstName'), max_length=50, null=True, blank=True)
    last_name = models.CharField(_('LastName'), max_length=70, null=True, blank=True)
    role = models.CharField(_('Role'), max_length=70, null=True, blank=True)
    location = models.CharField(_('Location'), max_length=70, null=True, blank=True)
    date_time = models.DateTimeField(_('DateTime'), auto_now=True, null=True, blank=True)
    activated = models.BooleanField(_('activated'), default=False)
    is_admin = models.BooleanField(_('is_admin'), default=False)
    is_itstaff = models.BooleanField(_('is_staff'), default=False)

    def __unicode__(self):
        return str(self.mobile_no)

    def __str__(self):
        return str(self.mobile_no)

    def get_full_name(self):
        return self.first_name + " " + self.last_name

    class Meta:
        ordering = ['-id']

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


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

    def has_module_perms(self, app_label):
        return self.is_admin

    USERNAME_FIELD = 'mobile_no'
    REQUIRED_FIELDS = ['role']

视图.py

@login_required
def user_logout(request):
    logout(request)
    return HttpResponseRedirect(reverse('login'))

标签: djangodjango-modelsdjango-logindjango-custom-user

解决方案


推荐阅读