Я пытаюсь получить все просроченные объекты для модели в моем приложении Django.
Модель выглядит так:
MyModel(models.Model):
owner = models.ForeignKey(User)
last_check = models.DateTimeField(blank=True, null=True)
interval = models.IntegerField(default=1800)
Мне нужно получить все подходящие объекты, где last_check раньше, чем сейчас, минус интервал проверки, чтобы определить, нужно ли проверять объект снова.
Нет проблем, если я использую статический интервал:
time_diff = datetime.now() - timedelta(seconds=1800)
MyModel.object.filter(last_check__lte=time_diff)
Но когда интервал находится на самой модели, я не могу понять, как это сделать. Вот что я попробовал:
objects_to_check = MyModel.objects.filter(
last_check__isnull=False
).filter(
last_check__lte=datetime.now() - timedelta(seconds=F('interval'))
)
Но это не сработало совсем, только дало мне следующую ошибку
unsupported type for timedelta seconds component: F
Есть идеи, как это решить?