2016-06-16 10 views
-3

は私が持っているモデル:古いエントリを削除するには?

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

を、私はDBに例えば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() 
関連する問題