我试图用模型整数字段填充timedelta参数天,但它说没有定义。
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"))