Получить все объекты с сегодняшней датой, django
У меня есть такая модель
class Maca(models.Model):
created_at = models.DateTimeField(
auto_now_add=True
)
Теперь я хочу в файле views.py получить все записи, которые были созданы сегодня,
Я пробую это
Maca.objects.filter(created_at=datetime.today().date())
Но это ищет часы, на которые создан объект.
P.S Я не могу изменить поле в модели, потому что мне нужны часы и для других целей.
Может ли кто-нибудь помочь мне выбрать все записи, которые были созданы сегодня?
Заранее спасибо
существует множество способов получения сегодняшних данных из базы данных.
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 )
второй способ заключается в фильтрации с помощью contains
filtereddata = Maca.objects.filter(created_at__contains=datetime.today().date())
если datetime.datetime не работает. просто удалите один datetime, используйте только один datetime
Думаю, основная причина в том, что вы пытаетесь сравнить поле dt
с полем date
.
Вы можете использовать префиксы для поля.
Или вы можете сравнить ваше значение 'today' как dt
(просто пример):
today = datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)
records = Maca.objects.filter(created_at >= today)
Вы должны просто написать правильный фильтр, как это :
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=date)