Voy a intentar mostrarte esto sin exponer los datos del cliente.

Consulta:

Booking.objects.filter(startTime__year__gte=2020, startTime__month__gte=7,startTime__day__gte=27, depositPaid=True).order_by('startTime')

Esto debería mostrar todas las reservas desde el 27 de julio, inclusive, en adelante en el futuro sin límites. Sin embargo, los límites están en el octavo mes. No se muestran las reservas de agosto.

Si corro:

Booking.objects.filter(startTime__year__gte=2020, startTime__month__gte=8,startTime__day__gte=1, depositPaid=True).order_by('startTime')

Entonces recibo todas las reservas en agosto. No entiendo por qué startTime__month__gte=7 no muestra agosto.

0
User 27 jul. 2020 a las 06:05

1 respuesta

La mejor respuesta

Filtrar por day__gte=27 solo arrojará resultados en los que el día del mes sea 27 o más, sin importar cuál sea el mes, no se devolverán las fechas de agosto en las que el día sea inferior a 27.

Si desea filtrar los resultados después de una fecha determinada, debe hacerlo como una consulta única en la columna, no como consultas individuales en las partes de la fecha.

import datetime
Booking.objects.filter(startTime__gte=datetime.date(2020, 7, 27), depositPaid=True).order_by('startTime')
1
Iain Shelvington 27 jul. 2020 a las 03:11