如何获取今天创建的对象? (Django的RestFramework)

时间:2015-08-03 12:21:19

标签: datetime django-rest-framework

模型领域:

time = models.DateTimeField()

如何获取(仅限)今天(从00:00:00到23:59:59)创建的对象

喜欢:

objects = Model.objects.filter(time__gt=?????????)

或?

由于

2 个答案:

答案 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:00end_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)