【发布时间】:2019-02-13 17:51:29
【问题描述】:
这是我的日程对象,
class Schedule(Base):
tournament = models.ForeignKey(Tournament, on_delete=models.CASCADE, null=True)
first_team = models.ForeignKey(Team, related_name="first_team", on_delete=models.CASCADE, null=True)
second_team = models.ForeignKey(Team, related_name="second_team", on_delete=models.CASCADE, null=True)
first_score = models.IntegerField(default=0, null=True)
second_score = models.IntegerField(default=0, null=True)
sport = models.ForeignKey(Sport, on_delete=models.CASCADE, null=True)
date = models.DateTimeField()
我想获取特定运动的时间表,过去 30 年 0.0 偏差以外的锦标赛的天数。
这是我的查询
schedules = Schedule.objects.filter(sport=sport).filter(date__gte=date.today()).filter(
date__lte=(date.today() + timedelta(days=30))).order_by("date").exclude(tournament__bias=0.0)
这不起作用,有人可以在这里帮助我。谢谢。
【问题讨论】:
-
“它不起作用”并没有告诉我们问题出在哪里。你得到了什么?出错了?
-
@dirkgroten 它获取了一个空集
-
您现在正在获取从今天到今天 + 30(3 月 15 日)之间的日期,因此是未来的日期。那是你要的吗?你说你想要过去的约会。
-
要调试此查询,请一次删除一个条件,然后检查您的查询集。这将帮助您确定哪些标准会过滤掉所有内容并留下空白集。同意@dirkgroten,您的问题可能是添加日期而不是减去日期。
标签: python django django-orm