Ich versuche, alle abgelaufenen Objekte für ein Modell in meiner Django-Anwendung abzurufen.
Das Modell sieht wie folgt aus:
MyModel(models.Model):
owner = models.ForeignKey(User)
last_check = models.DateTimeField(blank=True, null=True)
interval = models.IntegerField(default=1800)
Ich muss alle übereinstimmenden Objekte abrufen, bei denen last_check kleiner als jetzt minus das Prüfintervall ist, um festzustellen, ob das Objekt erneut geprüft werden sollte.
Kein Problem, wenn ich ein statisches Intervall verwende:
time_diff = datetime.now() - timedelta(seconds=1800)
MyModel.object.filter(last_check__lte=time_diff)
Aber wenn sich das Intervall auf dem Modell selbst befindet, kann ich nicht herausfinden, wie man es macht. Dies ist, was ich versucht habe:
objects_to_check = MyModel.objects.filter(
last_check__isnull=False
).filter(
last_check__lte=datetime.now() - timedelta(seconds=F('interval'))
)
Aber das funktionierte überhaupt nicht, ich bekam nur folgende Fehlermeldung
unsupported type for timedelta seconds component: F
Haben Sie eine Idee, wie man das Problem lösen kann?