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)