我有模特:
class MyModel(models.Model):
obj = models.ForeignKey(OtherModel)
date = models.DateTimeField(default=now)
[...]
我在db中有100个条目。我想删除除最近6个以外的所有条目。 如何在ORM中完成?
答案 0 :(得分:3)
您可以先获取第6个最新条目的日期。然后删除超过此日期的所有内容。
max_date = MyModel.objects.order_by('-date')[5]
delete_qs = MyModel.objects.filter(date__lt=max_date)
# it might be a good idea to inspect the result at this point
# to ensure you are deleting the right stuff
delete_qs.delete()