python - 如何检查查询集中包含的每个对象的字段的验证?
问题描述
我有一个“匹配”的查询集。在“匹配”模型中有一个布尔字段,我想检查这个字段是否等于我的查询集中包含的每个对象的 True。我怎样才能做到这一点 ?
matches = Match.objects.filter(phase=phase)
models.py
class Match(models.Model):
isFinished = models.BooleanField(default=False)
team1Win = models.BooleanField(default=False)
team2Win = models.BooleanField(default=False)
phase = models.ForeignKey(Phase, default=None, on_delete=models.CASCADE)
teams = models.ManyToManyField(Team, default=None, blank=True)
有问题的字段是isFinished
`。
解决方案
您可以通过检查是否有任何带有isFinished=False
. 如果这样的实例不存在,那么所有人都有isFinished=True
:
Match.objects.filter(phase=phase,isFinished=False).exists()
如果您的查询集中True
有任何语句并且所有语句都带有.isFinished=False
False
Matchs
isFinished=True
推荐阅读
- firebase - 已删除集合中的文档和子集合会发生什么情况?
- scala - java.lang.AbstractMethodError 更新播放框架 2.7.3 时
- android - 我无法从 Cordova 应用程序调用 https API,我该怎么做?
- java - 如何从 Java 中的 Scanner 输入中输出长字符串
- unity3d - 是否可以在场景模式下玩你的统一游戏?
- php - php 8.0.2 中关联数组键的行为与 php 7 不同吗?我应该用引号将数组键括起来吗?
- c++ - 将 uint8_t 缓冲区字节转换为另一种类型时如何绕过严格的别名?
- javascript - 为什么反应组件中的数据未定义?
- log4j - 是否可以使用 log4j 或 logback 以粗体或颜色突出显示文本
- macos - 活动 NSView 焦点更改时接收触发器