我有一份工作 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/