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
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
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)
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)
You can simply use __date
like this.
Maca.objects.filter(created_at__date=datetime.today().date())
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
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
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)
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)
You can simply use __date
like this.
Maca.objects.filter(created_at__date=datetime.today().date())