我想知道什么是删除Queryset中的对象时迭代Django QuerySet的最佳方法?例如,假设您在特定时间有一个包含条目的日志表,并且您想对其进行存档,以便每5分钟不超过1个条目。我知道这可能是错的,但是这是种什么我打算的:在同一个QuerySet中删除对象时迭代Django 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)
这是有效的,你可以通过这种方式删除对象。 – Rohan 2013-05-09 17:08:18
当在queryset上循环时使用delete(),当我转到模型的管理页面时保留一个空的记录。看来这个对象并没有完全删除。怎么了? – 2013-09-26 19:43:32