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 回答