Выполнение запросов с использованием F () и timedelta в django

У меня следующая модель:

class Process(models.Model):
  title = models.Charfield(max_length=255)
  date_up = models.DateTimeField(auto_now_add=True)
  days_activation = models.PositiveSmallIntegerField(default=0)

Теперь мне нужно запросить все объекты Process , срок действия которых истек, согласно их значению days_activation .

Я попробовал

from datetime import datetime, timedelta

Process.objects.filter(date_up__lte=datetime.now()-timedelta(days=F('days_activation')))

и получил следующее сообщение об ошибке:

TypeError: неподдерживаемый тип для компонента timedelta days: F

Я, конечно, могу это сделать в Python:

filter (lambda x: x.date_up<=datetime.now() - timedelta(days=x.days_activation), 
        Process.objects.all ()), 

, но мне действительно нужно создать django.db.models.query.QuerySet .

9
задан Lutz Prechelt 21 September 2017 в 10:06
поделиться