2016-09-12 11 views
0

に、私はフィルタを持って、それが動作しているが、私は+であるものを探していることによってそれにより多くの頭脳を追加したい - 12日たPostGISとgeodjango *と*フィルタ

だから私はこの思い付いた:

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) 

どのように日付と日付がわからないので、最終日よりも大きく、次の日付よりも小さいか等しいものをすべて見つけることができますか?

答えて

1

あなたのオブジェクトの日付は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検索が含まれており、その範囲は、開始と終了の値を含むことを意味します。それは次のものと同じです:

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) 
+0

素晴らしい範囲は私が探していたものです。 – Codejoy

関連する問題