模型领域:
time = models.DateTimeField()
如何获取(仅限)今天(从00:00:00到23:59:59)创建的对象
喜欢:
objects = Model.objects.filter(time__gt=?????????)
或?
由于
答案 0 :(得分:2)
您可以使用datetime.date.today()
获取当前日期,然后根据今天的日期过滤对象。
您可以执行以下操作:
import datetime
today = datetime.date.today() # date representing today's date
qs = MyModel.objects.filter(time__gt=today) # filter objects created today
此处,qs
表示今天创建的对象。
另一个解决方案是使用range
,用于在两个日期之间执行查找。
此处,start_date
代表00:00:00
,end_date
代表23:59:59
。
import datetime
today = datetime.datetime.today()
start_date = datetime.datetime(year=today.year, month=today.month, day=today.day, hour=0, minute=0, second=0) # represents 00:00:00
end_date = datetime.datetime(year=today.year, month=today.month, day=today.day, hour=23, minute=59, second=59) # represents 23:59:59
qs = MyModel.objects.filter(time__range=(start_date, end_date)) # today's objects
由于您使用的是Django Rest Framework,因此您可能需要覆盖视图中的get_queryset()
方法并返回包含今天创建的对象的查询集。
class MyView(..):
def get_queryset(self):
..
return qs # return the queryset created using the above logic
答案 1 :(得分:0)
import datetime
today = datetime.date.today()
qs = MyModel.objects.filter(time__date=today)