Zastanawiam się, jaki jest najlepszy sposób na iterowanie w Django QuerySet podczas usuwania obiektów w kwerendzie? Załóżmy na przykład, że masz tabelę dziennika z wpisami o określonych porach i chcesz je zarchiwizować, tak aby nie było więcej niż 1 wpisu co 5 minut. Wiem, że to może być źle, ale to niby co ja jadę dla:Iterowanie przez Django QuerySet podczas usuwania obiektów w tym samym QuerySet
toarchive = Log.objects.all().order_by("-date")
start = toarchive[0].date
interval = start - datetime.timedelta(minutes=5)
for entry in toarchive[1:]:
if entry.date > interval:
entry.delete()
else:
interval = entry.date - datetime.timedelta(minutes=5)
To jest poprawne, możesz usunąć obiekty w ten sposób. – Rohan
Używając delete() podczas zapętlania tego typu zestawów, zachowaj pusty reccord po przejściu na stronę administratora modelu. Wygląda na to, że obiekt nie został całkowicie usunięty. Co jest nie tak? –