获取今天日期的所有对象,django

Posted

技术标签:

【中文标题】获取今天日期的所有对象,django【英文标题】:Get all objects with today date, django 【发布时间】:2021-12-11 01:33:17 【问题描述】:

我有一个这样的模型

class Maca(models.Model):
   created_at = models.DateTimeField(
     auto_now_add=True
   )

现在我想在 views.py 文件中获取今天创建的所有条目,

我正在尝试这个

Maca.objects.filter(created_at=datetime.today().date())

但这也会查找对象创建的时钟。

P.S 我无法更改模型中的字段,因为我还需要时钟用于其他用途。

有人可以帮我选择今天创建的所有条目吗?

提前致谢

【问题讨论】:

【参考方案1】:

有很多方法可以从数据库中获取今天的数据。

year =  datetime.datetime.now().strftime('%y')
month =  datetime.datetime.now().strftime('%m')
day =  datetime.datetime.now().strftime('%d')
filtereddata = Maca.objects.filter(created_at__year=year,created_at__month=month, created_at__day=day )

第二种方法是使用包含过滤

filtereddata = Maca.objects.filter(created_at__contains=datetime.today().date())

如果 datetime.datetime 不起作用。只删除一个日期时间只使用一个日期时间

【讨论】:

【参考方案2】:

我认为主要原因是因为您试图将dt 字段与date 进行比较。

您可以use prefixes 获取字段。

或者您可以将您的“今天”值与dt(只是一个示例)进行比较:

today = datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)
records = Maca.objects.filter(created_at >= today)

【讨论】:

【参考方案3】:

你只需要像这样写一个有效的过滤器:

from datetime import datetime

today = datetime.today()

year = today.year
month = today.month
day = today.day

meca = Meca.objects.filter(created_at__year=year, 
created_at__month=month, created_at__day=day)

【讨论】:

以上是关于获取今天日期的所有对象,django的主要内容,如果未能解决你的问题,请参考以下文章

Django:按日期范围过滤对象

如何在 django 中使用日期时间过滤器仅用于日期和月份?

django 1.5 按日期获取最新记录

MySQL如何获取日期表示去年的今天

获取所有相关的 Django 模型对象

Django - 从模型中的所有对象中获取第一个属性