tengo un modelo asi
class Maca(models.Model): created_at = models.DateTimeField( auto_now_add=True )
Ahora quiero en el archivo views.py obtener todas las entradas que se han creado hoy,
estoy intentando esto
Maca.objects.filter(created_at=datetime.today().date())
Pero esto busca el reloj en el que también se crea el objeto.
PD: no puedo cambiar el campo en el modelo porque también necesito el reloj para otros fines.
¿Puede alguien ayudarme a seleccionar todas las entradas que se han creado hoy?
Gracias por adelantado
hay muchas maneras de obtener datos de hoy de la base de datos.
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 )
la segunda forma es filtrar con contiene
filtereddata = Maca.objects.filter(created_at__contains=datetime.today().date())
si datetime.datetime no funciona. simplemente elimine una fecha y hora solo use una sola fecha y hora
Creo que la razón principal es que intentas comparar el campo dt
con la date
.
Puede utilizar prefijos para un campo.
O puede comparar su valor 'hoy' como dt
(solo un ejemplo):
today = datetime.today().replace(hour=0, minute=0, second=0, microsecond=0) records = Maca.objects.filter(created_at >= today)
Solo tienes que escribir un filtro válido como este:
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)