2016-06-16 3 views
-3

У меня есть модель:Как удалить старые записи?

class MyModel(models.Model): 
    obj = models.ForeignKey(OtherModel) 
    date = models.DateTimeField(default=now) 
    [...] 

и у меня есть, например, 100 записей в БД. Я хочу удалить все записи, кроме последних 6. Как это сделать в ORM?

+0

Как вы определяете последние 6? что вы пробовали ?. – Sayse

ответ

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() 
Смежные вопросы