django - 自定义用户注销时 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'))
解决方案
推荐阅读
- google-sheets - 添加行号列,其中行不为空白或不以 [ 开头
- javascript - 如何在 map 方法中访问 firestore id 属性?
- javascript - 加载数据时如何禁用跨度中的fa图标?
- php - 使用正确的分页方式检索 Firebase Firestore 文档
- python - 如何模拟用户对 kivy 小部件的操作?(通过示例单击按钮)
- ionic-framework - 如何使用反应打字稿在离子框架中创建带有搜索框的下拉组件?
- java - Spark Scala:出现错误 javax.crypto.AEADBadTagException:标签不匹配!从 AES GCM 二进制文件解密
- php - Symfony 5 未验证多个独立的唯一字段
- javascript - 如何获取在 jQuery 中使用 $('*selector*).on(...) 的选择器的字符串值?
- arrays - 在 Kotlin 中从字符串创建字节数组