【发布时间】:2021-06-24 18:18:21
【问题描述】:
我使用 Django ORM 编写了以下查询:
fixtures = Fixture.objects.filter(league=league).filter((Q(predictions__value__gt=0.0) & Q(predictions__team=F("home"))) & (Q(predictions__value__gt=0.0) & Q(predictions__team=F("away"))))
通过这个,我试图过滤掉主队的prediction__value 大于0.0 和客队的prediction__value 大于0.0 的每个灯具。
遗憾的是,我的查询在使用 .count() 时返回 0 条记录,而它应该返回几乎所有记录。
当我只使用查询的一部分时;所以无论是 home 部分还是 away 部分,查询都会返回一定数量的记录。
模型:
class Fixture(models.Model):
home = models.ForeignKey(Team, on_delete=models.CASCADE, related_name="home")
away = models.ForeignKey(Team, on_delete=models.CASCADE, related_name="away")
league = models.ForeignKey(League, on_delete=models.CASCADE, blank=True)
class Prediction(models.Model):
fixture = models.ForeignKey(Fixture, on_delete=models.CASCADE, related_name="modelx_predictions")
team = models.ForeignKey(Team, on_delete=models.CASCADE)
model = models.ForeignKey(Model, on_delete=models.CASCADE, related_name="modelx_predictions")
value = models.FloatField(default=None, null=True, blank=True)
联赛的价值在这里无关紧要。
【问题讨论】:
-
您能指定您的模型并描述您的目标吗?
-
@WillemVanOnsem 添加了模型,我已经在第一段中指定了我要做什么