Django - concat datetimeField / timeField和compare

时间:2013-08-15 21:54:31

标签: django model datefield timefield

我想将查询集中的DateField和TimeField与当前日期进行比较。我搜索了几个小时但没有找到任何东西。尝试使用Q / F-Object,但也没有解决方案。现在我在这里,希望有人知道如何解决这个问题:) - 顺便说一句。分成日期和时间不是我的错,也没有办法将它改成DateTimeField(在其他项目中依赖太多)。

class Model(models.Model):
    date = models.DateField()
    time = models.TimeField()

在MySQL中我会做类似的事情:
SELECT * FROM app_model WHERE CAST(CONCAT(CAST(日期为CHAR),'',CAST(时间为CHAR))为DATETIME)> = NOW()

感谢您的任何建议!

1 个答案:

答案 0 :(得分:0)

您可以使用或者查询集约束(Q对象)执行此操作:

now = datetime.datetime.now()
future_models = Model.objects.filter(Q(date__gt=now.date()) | (Q(date=now.date()) & Q(time__gte=now.time())))

选择今天过去的所有日期,以及日期为今天且时间大于或等于当前时间的所有实例。