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"))