django - 在查询中按时间戳过滤

标签 django

我有一份工作 list 。它们按 job_type 和 complete=False/True 过滤。 例如:Job.objects.filter(job_type=1, complete=False)

我将如何通过作业的时间戳过滤这些,例如: job.timestamp.strftime(date_filter) == job.today().strftime(date_filter)

所以我想最终返回一个这样的列表:

Job.objects.filter(
   job_type=1,
   complete=False, 
   timestamp.strftime(date_filter)=datetime.today().strftime(date_filter)
).distinct()

最佳答案

如果我理解你的问题是正确的,你是想过滤在某一天发生的所有工作?所以计算一个日期范围,然后在您的过滤器中使用它:

from datetime import datetime, timedelta
today = datetime.now().date()

if date_filter == "day":
    timestamp_from = datetime.now().date()
    timestamp_to = datetime.now().date() + timedelta(days=1)
elif date_filter == "month":
    # Etc...
elif date_filter == "year":
    # Etc...

Job.objects.filter(
    job_type = 1,
    complete = False, 
    timestamp__gte = timestamp_from,
    timestamp__lt = timestamp_to,
).distinct()

否则,您可以使用 extra SQL WHERE clause 做一些时髦的事情

关于django - 在查询中按时间戳过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4923612/

相关文章:

python - 如何通过 Pycharm 在 Python 中使用调试器进行单元测试?

Django Rest Framework 上传的文件 URL

django - 休息框架图像验证

javascript - Websocket 是否发送和接收完整消息?

python - Django 模板 : False vs. 无

javascript - 将 Click 事件放在表格行上但排除其中一列

python - Django Channels Group.send 无法在 python 控制台中工作?

regex - Django URLS,使用 ?在网址中

python - 编程错误 : column "product" is of type product[] but expression is of type text[] enum postgres

python - pip安装和全局安装的区别