私はこのようなモデルを持っています:
from django.core import meta
class Foo(models.Model):
date = models.DateTimeField()
name = models.CharField(maxlength=100)
def __unicode__(self):
return self.name
class Meta:
get_latest_by = 'date'
そして私は書くことができます
>>> from datetime import datetime
>>> a1 = Foo(name='a1', date=datetime(2012, 12, 18))
>>> a1.save()
>>> a2 = Foo(name='a2', date=datetime(2012, 12, 19))
>>> a2.save()
>>> a3 = Foo(name='a3', date=datetime(2012, 12, 20))
>>> a3.save()
>>> a4 = Foo(name='a4', date=datetime(2012, 12, 21))
>>> a4.save()
次に書くと次のような結果になります
>>> Foo.objects.latest()
a4
最後の3つのオブジェクトをどのように取得しますか?何かのようなもの
>>> Foo.objects.latest(count=3)
a4, a3, a2
注:並べ替えを使用する必要はありません。
>>> Foo.objects.all().order_by('-date')
日付ベースが非常に大きく、クエリに時間がかかるためです。