Python Django筛选器对象,在过去3小时内创建了_
我知道如何按天过滤,但如何按特定时间段过滤?我需要按Python Django筛选器对象,在过去3小时内创建了_,python,django,python-3.x,django-models,date-range,Python,Django,Python 3.x,Django Models,Date Range,我知道如何按天过滤,但如何按特定时间段过滤?我需要按3,6,12,24小时进行筛选。只需使用datetime。datetime: start_date = datetime.date(2017, 1, 1) end_date = datetime.date(2017, 2, 28) camera_logs = CameraLog.objects.filter(camera_id=camera_id, created_at__range=(start_date, end_date)) 这将过滤
3,6,12,24
小时进行筛选。只需使用datetime。datetime
:
start_date = datetime.date(2017, 1, 1)
end_date = datetime.date(2017, 2, 28)
camera_logs = CameraLog.objects.filter(camera_id=camera_id, created_at__range=(start_date, end_date))
这将过滤在午夜和凌晨3点之间创建的值
要按最近三小时进行筛选,请执行以下操作:
start_date = datetime.datetime(2017, 1, 1, 0) # hour 0
end_date = datetime.datetime(2017, 1, 1, 3) # hour 3
这是我获取当前时间的方式,然后减去3小时的范围:
# current date with minutes, seconds, and microseconds set to 0
end_date = datetime.datetime.today().replace(minute=0, second=0, microsecond=0)
# shift that date by 3 hours to get the start of the range
start_date = end_date - datetime.timedelta(hours=3)
只需将“美国/危地马拉”替换为您的时区。我认为您需要
型号的字段。DateTimeField
,但不需要型号。DateField
我已经有了。这就是在
创建的内容。我没有访问dateutil
的权限。我不确定您建议如何过滤过去3小时的内容。。。你能提供一个例子吗?@dcolombus更新。您想使用datetime.timedelta
以三小时为单位移动。
from django.utils import timezone
from dateutil.relativedelta import relativedelta
import datetime
import pytz
end_date = timezone.localtime(timezone.now()).replace(tzinfo=pytz.timezone('America/Guatemala'))
start_date = end_date + relativedelta(hours=-3)
camera_logs = CameraLog.objects.filter(camera_id=camera_id, created_at__range=(start_date, end_date))