2012-03-06 5 views
1

django-scheduleに基づく。私はそれを作った人を見つけることができません。Djangoスケジュール:event.get_occurrence()とevent.get_occurrences()の違い?

私は何かが欠けている場合私は、私はイベントの発生を取得しようとしている、好ましくは与えられた日です。

event.get_occurrence(date)を使用すると、常に何も返されません。しかし、event.get_occurrences(before_date、after_date)を使用すると、突然、以前に試行された日付のオカレンスが表示されます。

これは1つのdatetimeオブジェクトではうまくいかないのはなぜですか?

答えて

0

この違いは、おそらくこれらの2つの方法の実際の設計にあります。率直に言って、get_occurrenceは、一般的にむしろ欠陥があります。このようなメソッドは、Noneでも、の何かが返されますが、まったく返されないシナリオがあります。つまり、あなたのイベントにルルールがなく、get_occurrenceがイベントのstartと同じではない場合、値は返されません。

実際には何もできません。それは単なる欠陥のあるコードです。イベントが戻り、発生しない場合に、特に場合は上記のコメントに基づいて

+0

ありがとうございました。私はそれが私であることを心配した。 – sambacore

0

、以下の次のスニペットは、あなたはそれが

from dateutil.relativedelta import relativedelta 

def custom_get_occurrence(event,start_date): 
    occurrence = event.get_occurrence(start_date) 
    if occurrence is None: 
     occurrences = event.get_occurrences(start_date, start_date+relative_delta(months=3) 
     result = filter(lambda x: x.start==start_date,occurrences) 
     occurence = result[0] 

存在していることを確信している場合は特に発生の取得を強制することができます上記のコードは、デフォルトのget_occurrenceが結果を返さない場合に発生する可能性のある問題を解決します。

関連する問題