DJANGO FILTER DATE, где timedelta Day var равна полю модели

Я пытаюсь заполнить параметр timedelta days целым полем модели, но он говорит, что поле не определено.

'''

query = POPlan.objects.filter(Q(status="INCOMPLETE") | Q(status="PARTIAL"),
  date_created__date__lte=timezone.now().date()-datetime.timedelta(days=
  (supplier__expectedDuration)))

'''

Поле поставщика является внешним ключевым отношением в моей модели POPlan и имеет целочисленное поле ожидаемой продолжительности. Есть предложения, как реализовать этот код? Спасибо!

Вам нужно F()-выражение для ссылки на значения других полей модели. Функция ExtractDays()-Function` должна позволить вам извлечь количество дней из временной дельты.

from djano.utils import timezone
from django.db.models import F, Q, DurationField
from django.db.models.functions import Cast, ExtractDay

query = POPlan.objects.filter(Q(status="INCOMPLETE") | Q(status="PARTIAL"))
query = query.annotate(
    diff=ExtractDay(Cast(timezone.now().date-F("date_created__date"), 
        output_field=DurationField()
    ))
).filter(diff__gt=F("supplier__expectedDuration"))
Вернуться на верх