django - Django 通过 is_active 和 has_usable_password() 方法过滤用户
问题描述
我有一个用户管理器,它有一种无需密码即可创建用户的方法。现在,我需要获取所有未激活的用户,即user.is_active=False
和user.has_usable_password()=False
.
has_usable_password()的 Django 文档链接。
我不想做类似下面的事情。
User.objects.filter(is_active=False, password__has_usable_password=False)
解决方案
has_usable_password
未存储在数据库中,因此您不能直接在查询集中使用它,而是可以检查密码是否以开头!
或为空:
from django.db.models import Q
User.objects.filter(Q(is_active=False), Q(password__startswith='!') | Q(password__isnull=True))
这正是has_usable_password
做什么(来源)。
推荐阅读
- javascript - 如何在文件之间读取/写入 JSON 数据?(Node.Js)
- ios - 如何将路线坐标数组划分为等距离部分?
- reactjs - 使用 React.lazy 给出的元素类型无效
- java - 如何将多个服务放在一个类中,该类在 Activiti 中实现 JavaDelegate 接口
- python - sys.argv[0] 总是什么都不返回
- c - 依次出现 fwrite 和 fread 问题
- xml - 如何使用 minidom 正确解析 xml
- java - 我如何将完全标记的数据集拆分为标记和未标记的数据以用于半监督学习
- python - Anaconda unsatisfiederror的Keras安装错误
- excel - Excel:使用IF和Count函数检查列中是否存在日期范围?