如何在Django ORM查询中进行数学运算?

时间:2019-01-22 02:41:11

标签: python sql django python-3.x orm

我正在将Django与Python 3.7结合使用。我有低于模型的...

class Article(models.Model):
    ...
    title = models.TextField(null=False)
    created_on = models.DateTimeField(default=datetime.now)

我想编写一个Django ORM查询,在其中找到所有5分钟以上的文章。但是我不确定如何编写这样的查询。我尝试过

Article.objects.filter((datetime.now(timezone.utc) - created_on)__gte==300)

但这会导致

SyntaxError: invalid syntax

错误。

1 个答案:

答案 0 :(得分:3)

根据我的理解阅读您的问题。考虑到当前时间,您想查找早于5分钟的文章列表。如果我说得对,那么您需要first subtract 5 mins from your timemake query with greater than or equal (gte) ex:created_on__gte

示例代码如下。希望这会有所帮助

from datetime import datetime, timedelta
date_to_query = datetime.now(timezone.utc) - timedelta(hours=0, minutes=5)

Article.objects.filter(created_on__gte=date_to_query)