Django Query在过去或将来查找最新项目

时间:2014-11-23 17:52:16

标签: django django-queryset

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

我当前的查询如下所示:

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]

1 个答案:

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

请注意,all()之前您不需要filter()