1

最近追加されたものだけを取得するにはOrder?

class Order(models.Model):
    STATUSS = (
        (u'E', u'Expected'),
        (u'S', u'Sent'),
        (u'F', u'Finished'),
        )

    who = models.ForeignKey(User, related_name='Owner')
    products = models.TextField()
    date = models.DateTimeField(auto_now_add=True)
    send = models.ForeignKey(Send)
    status = models.CharField(max_length=2, null=True, choices=STATUSS, default='O')
4

3 に答える 3

3

私は auto-increment を好みますpk

Order.objects.latest('pk')

これはより単純で、索引付けされており、デフォルトの代理主キーが使用されている限り準備が整っています。

于 2012-10-06T12:40:28.470 に答える
1

最近とは、追加された日付に関する最新の注文を意味する場合、次を使用できます。

Order.objects.order_by('-date')[0]
于 2012-10-06T12:05:41.883 に答える
1

「最近」の定義が「最後に追加されたもの」である場合は、次を使用できますlatest()

Order.objects.latest('date')

あるいは単に

Order.objects.latest()

あなたが持っている場合

class Meta:
    get_latest_by = 'date'

あなたのモデルで。これは、django ドキュメントからのものです。 https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.latest

最新のものが複数必要な場合は、過去 5 日間のすべてを言います。

import datetime
Order.objects.filter(date__gte=datetime.date.today() - datetime.timedelta(days=5)) 

または、最近のものに関係なく、最後の 10 件のレコードが必要な場合は、次のようにします。

Order.objects.order_by('-date')[10]
于 2012-10-06T12:25:44.293 に答える