django - Django如何仅查询在多对一条件下完全满足过滤条件的记录
问题描述
我有以下型号:
class McMbData(models.Model):
lastname = models.CharField(max_length=50,blank=True)
class Visits(models.Model):
mcmbdata_id = models.ForeignKey(McMbData, on_delete=models.CASCADE)
name = models.CharField(max_length=50,blank=True)
signe_in = models.BooleanField(default=False)
我只想获取 signe_in =True 的访问记录
这是我尝试过的:
McMbData.objects.filter(visits__signe_in = False)
所以我得到了至少满足一次条件的所有 McMbData 条目:
姓:穆特曼
访问:熊,真 - 叛徒,假 - 好莱坞,假
我只想获取真实的访问条目。像这样:
姓:穆特曼
访问:熊,真
解决方案
对于任何可以覆盖预取查询集的 McMbData 对象,您只需要 signe_in=True 访问。
from django.db.models import Prefetch
McMbData.objects.prefetch_related(
Prefetch(
'visits_set', queryset=Visits.objects.filter(signe_in=True)
)
)
推荐阅读
- apache-flink - 寻找 Flink RemoteStreamEnvironment 示例项目
- python - 使用 python 打印功能时 Ansible 自定义模块失败
- sql - SQL 查询 - 合并具有相同值的两种类型的对象
- kotlin - 如何将 KotlinPoet 依赖项添加到简单的控制台应用程序?
- python - 连接到 RDS-aurora-mysql 数据库时出现问题
- process - Process Table 和 UNIX 中的 Job Queue 是一样的吗?
- microsoft-teams - 注册 Teams 连接器时的 handleMessageError
- sql - 在后触发函数中使用new_table、old_table、原表名
- java - 将 API 请求类型映射为内部对象类型
- image - 使用 TCPDF 在框中分配全宽图像