Get all objects with today date, django

Question:

I have a model like this

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

Now I want in the views.py file to get all the entries that have created today,

I’m trying this

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

But this looks for the clock that object is created too.

P.S I can’t change the field in model because I need the clock too in other purposes.

Can someone help me to select all entries that have been created today?

Thanks in advance

Asked By: maca

||

Answers:

there many ways to get today data from database.

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 )

the second way is to filter with contains

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

if datetime.datetime not work. just remove one datetime only use single datetime

Answered By: azhar

I think the main reason is because you trying to compare dt field with date.

You can use prefixes for a field.

Or you can compare your ‘today’ value as dt(just an example):

today = datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)
records = Maca.objects.filter(created_at >= today)
Answered By: Danila Ganchar

You have to just write a valid filter like this :

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)
Answered By: Rvector

You can simply use __date like this.

Maca.objects.filter(created_at__date=datetime.today().date())
Answered By: Ahab Ali Khan
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.