删除模型中最旧的Django对象以保留最新的对象

删除模型中最旧的Django对象以保留最新的对象,django,Django,我有一个django模型,我想保留最新的40个对象 我已尝试使用以下代码来执行此操作 delete = model.count() - 40 model.objects.all[:delete].delete() 我得到了一个错误“不能在delete中使用'limit'或'offset' 有人能推荐一种方法吗?不漂亮,但很有效: ids = MyModel.objects.order_by("-pk").values_list("pk", flat=True)[:40] MyModel.obj

我有一个django模型,我想保留最新的40个对象

我已尝试使用以下代码来执行此操作

delete = model.count() - 40
model.objects.all[:delete].delete()
我得到了一个错误“不能在delete中使用'limit'或'offset'


有人能推荐一种方法吗?

不漂亮,但很有效:

ids = MyModel.objects.order_by("-pk").values_list("pk", flat=True)[:40]
MyModel.objects.exclude(pk__in=list(ids)).delete()