2014-11-23 78 views
0

我有一个查询,用于返回距离当前日期最近且距当前日期最远的项目。我想更改查询以查找将来的最近日期和过去最近的日期。有没有办法限制结果只返回之前或未来的日期?Django查询查找过去或未来最近的项目

我当前的查询看起来是这样的:

next = Product.objects.all().filter(categories__name='Subscription').filter(name__gt=date.today()).order_by("name")[0] 
current = Product.objects.all().filter(categories__name='Subscription').filter(name__gt=date.today()).order_by("-name")[0] 

回答

2

最近的未来:

next = Product.objects.filter(
    categories__name='Subscription' 
).filter(name__gt=date.today()).order_by("name")[0] 

最近的过去:

current = Product.objects.filter(
    categories__name='Subscription' 
).filter(name__lt=date.today()).order_by("-name")[0] 

https://docs.djangoproject.com/en/dev/ref/models/querysets/#field-lookups

不e你在filter()之前不需要all()

+0

完美的谢谢。 – byrdr 2014-11-23 18:52:18