2016-12-11 9 views
0

私はこのようなモデルを持っています。私は、オブジェクトを格納しながら終了時刻に到着しようとしていますSTARTTIMEと持続時間とのdjangoモデルの開始時間と継続時間を使用してendtimeに到達する方法

starttime  =  models.TimeField('Show Start Time',) 
duration  =  models.DurationField('Duration',) 
endtime   =  models.TimeField('Show End Time (Optional)',blank=True, null=True) 

。上記のコード

def save(self, *args, **kwargs): 
    startdelta=timedelta(hours=self.starttime.hour,minutes=self.starttime.minute,seconds=self.starttime.second) 
    enddelta = startdelta + self.duration 
    self.endtime = enddelta 
    super(Showsets, self).save(*args, **kwargs) 

私にエラーをスローし、私はtimefieldと持続時間フィールドはジャンゴでどのように動作するかを知りたいまた、中)(STARTTIMEを開始オブジェクトのように(STARTTIMEまたは終了時刻に基づいてフィールドを照会する方法を支援してください今から30分)。

また、時間ベースのクエリにdjango-app(アドオン)があるかどうか不思議です。

ありがとうございます!

+0

トレースバックを表示してください。 – knbk

答えて

2

わからないこれはあなたの状況に適したソリューションとなりますが、私は普通のような何かをした場合:それは期間と開始時間を格納し、その後にEND_TIMEを計算するよりもはるかに簡潔な解決策のように思える

start_time = models.TimeField() 
end_time = models.TimeField() 


def duration(self): 
    return self.end_time - self.start_time 

セーブ()。

0

あなたは、今日の日付とSTARTTIMEを組み合わせて、時間を追加することができます。

from datetime import datetime, date 

self.endtime = (datetime.combine(date.today(), self.starttime) + self.duration).time()