Как фильтровать в django с помощью добавления дней к существующим датам

class Payment(models.Model):
    name = models.CharField()
    payment_date = models.DateField()

Пример

Табличная оплата

id   name  payment_date
1    A     2022-01-01
2    B     2022-01-02
3    C     2022-01-02
4    D     2022-01-06

Предположим, что дата платежа для каждого платежа - это дата_платежа+10 дней. Предположим, я проверяю на дату '2022-01-12' записи, которые должны быть оплачены:

2022-01-01 + 10 days = 2022-01-11 Due
2022-01-02 + 10 days = 2022-01-12 Due
2022-01-06 + 10 days = 2022-01-16 Not Due

Таким образом, мой примерный вывод должен быть

Sample:
<QuerySet [<Payment: A>, <Payment: B>, <Payment: C>]>

вы можете использовать timedelta

from datetime import timedelta

Теперь вы можете добавлять дни к объектам datetime следующим образом, а затем фильтровать на основе этой даты

new_date = payment_date+timedelta(days=10)
    

Вы можете сделать:

from datetime import timedelta
from django.utils import timezone

Payment.objects.filter(
    payment_date__lte=timezone.now() - datetime.timedelta(days=10)
)
Вернуться на верх