如何仅在最近添加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')
答案 0 :(得分:2)
我更喜欢自动增加pk
,然后
Order.objects.latest('pk')
只要使用默认的代理主键,它就更简单,已编制索引并准备就绪。
答案 1 :(得分:1)
如果最近指的是关于添加日期的最新订单,那么您可以使用:
Order.objects.order_by('-date')[0]
答案 2 :(得分:1)
如果您对“最近”的定义是“最后添加的”,则可以使用latest()
Order.objects.latest('date')
或只是
Order.objects.latest()
如果你有
class Meta:
get_latest_by = 'date'
在你的模型中。这是来自django docs,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]