Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

234
Vistas
recuperar datos de un modelo django cuando el pago de un usuario está atrasado por 2 días

Estoy tratando de recuperar datos de mi modelo de pagos, cuando el pago de un usuario está atrasado por 2 días. El siguiente código es lo que ya he probado.

 expected_payment_date = datetime.date.today() + datetime.timedelta(+int(2)) users = Payment.objects.filter(expected_payment_date=expected_payment_date)
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

expected_payment_date = datetime.date.today() + datetime.timedelta(-int(2)) users = Payment.objects.filter(expected_payment_date=expected_payment_date)

Creo que no funcionará porque crea un objeto de fecha y hora con valores de hora establecidos en 0, por lo que la hora en la base de datos no coincide.

Con el código anterior, es posible que obtenga solo la lista de objetos de pago que está atrasada desde los últimos días, ¿qué pasa si hay atrasos de más de 3/4/5 días?

Si desea una fecha entre el rango como, desde el inicio del mes/año actual hasta (fecha actual -2 / día antes de ayer / vencido por 2 días), puede hacer lo siguiente usando mayor que igual y menor que igual:

 import datetime from datetime import date from datetime import timedelta startDate = date(2017, 1, 1) # start date endDate = date.today() - timedelta(days=2) # end date --> day before yesterday. payments = Payment.objects.filter(expected_payment_date__gte=startDate, expected_payment_date__lte=endDate)

Otra forma: simplemente puede usar __range ,

 startDate = date(2017, 1, 1) # start date endDate = date.today() - timedelta(days=2) # Day before Yesterday. Payment.objects.filter(expected_payment_date__range=[startDate, endDate])

NOTA: Debe haber un indicador booleano en el modelo de pago, que indicará si el pago se pagó o venció, digamos que agregamos el indicador isDue en Pago, luego, cuando reciba el pago, configúrelo en False , hasta que reciba el pago. será True . entonces puedes hacer como:

 Payment.objects.filter(expected_payment_date__range=[startDate, endDate], isDue=True)
over 4 years ago · Santiago Trujillo Denunciar

0

Estaba usando un signo + en lugar de un signo -

 expected_payment_date = datetime.date.today() + datetime.timedelta(-int(2))
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda