获取同一天创建的所有对象

Get all objects created on same day till now

我有一个包含 created_at DateTimeField 的模型。我想过滤模型以获取在这一天、一个月到现在创建的所有对象。

例如:日期 = 21/06/2016 现在我想获取 21/06 到现在为止创建的所有对象,而不考虑年份。

编辑: 准确地说,我有存储用户出生日期的模型。我想获取所有在这一天出生的用户。

我尝试使用 __range、__gte、__month 和 __day。这东西没用。

根据我从你的问题中了解到的情况,你想要获取与今天日期相同的所有对象,而不考虑年份。

我会用这样的东西。看看这是否有帮助。

from datetime import datetime
today = datetime.now()

OneModel.objects.filter(created_at__day = today.day.__str__(), 
    created_at__month =  today.month.__str__())

有关更多信息,请参阅此 link:How can I filter a date of a DateTimeField in Django?

在查询集之外进行过滤的示例。 获取您想要的日期并删除不需要的结果

from datetime import datetime, timedelta

twodaysago = str(datetime.strptime(str(datetime.now().date()-timedelta(days=2)), '%Y-%m-%d')).split()[0]

现在像这样进行查询和过滤,您也可以在查询过滤器中进行,但如果您需要一些额外的操作,请在代码中进行

date_filtered = [x for x in query\
                if datetime.strptime(
                    x.get('created_at ', ''),
                    '%Y-%m-%d') > twodaysago
                ]

不确定我是否理解正确,但试试这个:

before = datetime.date(2016, 06, 21)
today = datetime.date.today()

MyModel.objects.filter(
    created_at__month__range=(before.month, today.month),
    created_at__day__range=(before.day, today.day)
)

感谢您的评论和回答。我已经使用 this 答案来解决问题。我已经从代码中删除了 timedelta(days)