I think the .all() method is superfluous here, .order_by() should return all objects in the specified order. Also, the Django documentation claims that slicing a QuerySet will produce another QuerySet that should be .delete() able.