2011-02-07 10 views
0

私はジョブのリストを持っています。それらはjob_typeでフィルタリングされ、complete = False/Trueです。 例:Job.objects.filter(job_type=1, complete=False)クエリのタイムスタンプでフィルタ

どのように私は次のように仕事のタイムスタンプでこれらをフィルタリングします:だから私はfinalyこのようなリストを返したい job.timestamp.strftime(date_filter) == job.today().strftime(date_filter)

Job.objects.filter(
    job_type=1, 
    complete=False, 
    timestamp.strftime(date_filter)=datetime.today().strftime(date_filter) 
).distinct() 
+0

を使用してファンキーな何かを行うことができるかもしれないが、何timestamp__weekについて? – Harry

+0

'date_filter'とは何ですか? –

+0

私のtemplate_tagの一部、{%show_jobs "day"%}:それはdate_filter = day = '%j'になります – Harry

答えて

6

私はあなたが質問を理解している場合特定の日に発生するすべてのジョブをフィルタリングしようとしていますか?だから、日付範囲を計算し、その後、あなたのフィルタであることを使用します。

from datetime import datetime, timedelta 
today = datetime.now().date() 

if date_filter == "day": 
    timestamp_from = datetime.now().date() 
    timestamp_to = datetime.now().date() + timedelta(days=1) 
elif date_filter == "month": 
    # Etc... 
elif date_filter == "year": 
    # Etc... 

Job.objects.filter(
    job_type = 1, 
    complete = False, 
    timestamp__gte = timestamp_from, 
    timestamp__lt = timestamp_to, 
).distinct() 

そうでなければ、あなたは私がtimestamp__year =などを使用することができます参照extra SQL WHERE clause

+0

ありがとう! thatsは割当てに役立ちます。それは有り難いです。 – Harry

関連する問題