2014-01-16 75 views
0

我有時間模板過濾器的問題。 我在models.py的功能,在這裏我要計算到下一次課程:不工作模板過濾器

time_to = models.TimeField() 

def get_time_to_next(self): 
    return datetime.combine(datetime.today(), self.time_to) - \ 
     datetime.combine(datetime.today(), datetime.time(datetime.now())) 

而且我想在一個模板來顯示這一點:

{{ next_classes.get_time_to_next|time:"H:i" }} 

但模板沒有顯示任何東西。從功能的時間是最多的時間,而不是幾天或幾周或幾年....

謝謝您的回答

+0

你沒有收到你的函數的參數?這是你的所有代碼嗎? –

回答

0

您減去2個datetime s,這將導致timedelta,而這些不支持由time過濾器。實際上,我認爲你只是得到一個例外,因爲datetime.today()返回一個datetime而不僅僅是一天(改用date.today())。爲確保您的方法不會引發異常,請從控制檯manage.py shell中嘗試。

這個問題Displaying a timedelta object in Django template似乎提供了一個解決方案來顯示timedelta。但是,您可能最好從get_time_to_next()返回datetime對象。