Django中用户登出后账号状态是否会从active变为not active
结论:不会
Django框架默认逻辑下,用户触发登出操作时,账号的is_active状态完全不会自动从'active'变更为'not active',两者没有绑定关系。
- 首先明确字段定位:Django用户模型的
is_active字段是用来标记账号本身是否具备登录权限的全局属性,和用户当前是否处于登录状态的会话属性完全独立。 - 内置
logout()方法的默认执行逻辑只有两项:- 清空当前请求绑定的会话数据,移除当前用户的登录会话凭证
- 发送
user_logged_out信号供自定义逻辑监听,全程不会修改用户模型实例的任何字段值
- 如果你在项目中观察到登出后
is_active字段发生变更,一定是项目自定义的登出业务逻辑、或者绑定user_logged_out信号的接收器里手动写了字段更新代码,不属于框架默认行为。
补充:只有主动调用用户模型更新方法、在admin后台手动调整账号状态、或者自定义业务逻辑触发字段修改时,
is_active的值才会发生变化,常规登录、登出操作都不会触碰这个字段。
内容的提问来源于stack exchange,提问作者diyara
相关产品推荐
相关产品推荐

