Ich habe mir den Code mal inhaltlich angeschaut:
Als erstes: Was bedeutet `coloumn`? Ich vermute mal das ist ein Tippfehler und sollte `column` heissen, das macht aber nicht wirklich Sinn. Das ist doch keine Spalte sondern ein `Time`-Exemplar. Warum heisst das dann nicht `time`? Und warum werden die Namen `stoptime` und `starttime` jeweils in der selben Schleife sowohl für *alle* `Time`-Objekte als auch für einzelne `Time`-Objekte verwendet? Das ist extrem verwirrend. Überhaupt ist eine Bezeichnung im Singular für eine *Sequenz* von Werten unpassend.
Dann habe ich ein Verständnisproblem bei der ersten Schleife. Es wird über *alle* `Time`-Objekte aus der Datenbank iteriert. Wozu werden die dann *in* der Schleife noch mal alle mit `get()` *noch mal* ermittelt? Und funktioniert das überhaupt? Denn bei `get()` muss es ja zu jeder Zeit *genau* *einen* passenden Treffer geben. Und das müsste dann ja das Objekt *selbst* sein. Und damit ergeben alle `get()`-Aufrufe zusammen wieder alle `Time`-Objekte — die hast Du doch aber schon von der Schleife einmal alle abgefragt. Die erste Schleife sollte damit (fast) das gleiche machen wie diese einfachere hier:
Code: Alles auswählen
now = datetime.now()
for time in Time.objects.all().order_by('endtime'):
stoptime.endtime = now
stoptime.save()
Bei der zweiten Schleife fragt man sich wieder warum das überhaupt eine Schleife ist, denn die durchläuft *alle* `Time`-Objekte aus der Datenbank nur im mit dem *letzten* dann tatsächlich etwas zu machen. Da würde man ja eher einfach nur das letzte Objekt von der Datenbank abfragen statt alle. `QuerySet.latest()` wäre da die passende Methode für.
Das (erste) Problem liegt daran das `datetime` an der Stelle wo es kracht nicht den Wert hat den Du da anscheinend vermutest. Lass Dir den Wert und Typ einfach mal ausgeben und vergleich das mit dem Wert und Typ den das haben müsste.
Und vielleicht auch mal die Werte und Typen von `starttime` und `stoptime`. Und dann überleg mal ob der Umweg den Du da versuchst überhaupt nötig ist.
Als letztes stellt sich noch die inhaltliche Frage *was* Du an der Stelle überhaupt berechnen möchtest. So wie es aussieht ist das die Zeitspanne zwischen der Startzeit des `Time`-Objektes mit der ältesten Startzeit und der Endzeit des `Time`-Objektes mit der ältesten Endzeit. Dir ist klar dass es sich dabei nicht zwangsläufig um das selbe `Time`-Objekt handeln muss und das ist so gewollt?