过滤器中的 postgis 和 geodjango *和*
postgis and geodjango *and* in filter
我有一个过滤器,它在工作,但我想通过寻找任何 +- 12 天的东西来增加更多的大脑
所以我想到了这个:
last_date = firstPointCheck.acquisition_date - timedelta(days=12)
next_date = firstPointCheck.acquisition_date + timedelta(days=12)
object_list2 = object_list.filter(center__distance_lte=(firstPointCheck.center, D(m=deltaCenter)), acquisition_date__lte=firstPointCheck.acquisition_date, acquisition_date__gte=last_date)
我不确定如何找到日期,以便找到大于等于上一个日期且小于等于下一个日期的所有内容?
现在
您可以使用Django's range
lookup检查对象的日期是否在指定范围内。它看起来像这样:
last_date = firstPointCheck.acquisition_date - timedelta(days=12)
next_date = firstPointCheck.acquisition_date + timedelta(days=12)
object_list2 = object_list.filter(center__distance_lte=(firstPointCheck.center, D(m=deltaCenter)), acquisition_date__range=[last_date, next_date])
range
django 中的查找是包容性的,这意味着范围将包括起始值和结束值。相当于:
last_date = firstPointCheck.acquisition_date - timedelta(days=12)
next_date = firstPointCheck.acquisition_date + timedelta(days=12)
object_list2 = object_list.filter(center__distance_lte=(firstPointCheck.center, D(m=deltaCenter)), acquisition_date__lte=next_date, acquisition_date__gte=last_date)
我有一个过滤器,它在工作,但我想通过寻找任何 +- 12 天的东西来增加更多的大脑
所以我想到了这个:
last_date = firstPointCheck.acquisition_date - timedelta(days=12)
next_date = firstPointCheck.acquisition_date + timedelta(days=12)
object_list2 = object_list.filter(center__distance_lte=(firstPointCheck.center, D(m=deltaCenter)), acquisition_date__lte=firstPointCheck.acquisition_date, acquisition_date__gte=last_date)
我不确定如何找到日期,以便找到大于等于上一个日期且小于等于下一个日期的所有内容?
现在
您可以使用Django's range
lookup检查对象的日期是否在指定范围内。它看起来像这样:
last_date = firstPointCheck.acquisition_date - timedelta(days=12)
next_date = firstPointCheck.acquisition_date + timedelta(days=12)
object_list2 = object_list.filter(center__distance_lte=(firstPointCheck.center, D(m=deltaCenter)), acquisition_date__range=[last_date, next_date])
range
django 中的查找是包容性的,这意味着范围将包括起始值和结束值。相当于:
last_date = firstPointCheck.acquisition_date - timedelta(days=12)
next_date = firstPointCheck.acquisition_date + timedelta(days=12)
object_list2 = object_list.filter(center__distance_lte=(firstPointCheck.center, D(m=deltaCenter)), acquisition_date__lte=next_date, acquisition_date__gte=last_date)