2016-06-16 6 views
-3

나는 모델이 있습니다이전 항목을 삭제하는 방법?

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

을 나는 예를 데시벨에서 100 개 항목을 가지고있다. 가장 최근의 항목을 제외한 모든 항목을 삭제하고 싶습니다. 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() 
관련 문제