我正在尝试为我的 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
知道如何解决这个问题吗?