2010-07-16 85 views
2

我正在開發一個django- Google應用程序引擎項目。用戶插入一些值,並使用谷歌應用程序引擎DateTimeProperty(auto_now_add = True)屬性自動填充日期時間字段。現在,我必須在模板上顯示此時間與用戶查看結果時的當前時間的差異。Django模板:如何顯示數據存儲時間和當前時間之間的時間差異?

例如,如果插入的時間是5:00並且用戶在6:00查看帖子,則結果應該是1小時。 Django模板中是否有可用的內置過濾器?我試過timesince:

{{ topic.creation_date| timesince: now }} 

其中creation_date是日期時間字段。但它不工作。

請建議。

在此先感謝。

回答

12

您的上下文中是否有一個名爲「now」的變量?如果不是,那會失敗。

但是,實際上並不需要它,因爲如果您不帶參數調用timesince過濾器,它將使用當前時間。所以只是做:

{{ topic.creation_date|timesince }} 
+0

不知道。非常感謝Daniel。 – 2010-07-16 08:43:48

+0

但是,「現在」確實沒有通過上下文的工作。這只是沒有與「timesince」工作。因爲它對我來說工作正常,因爲{%now「jS F Y H:i」%}。 – 2010-07-16 10:05:54

+0

完全不同的東西。這是使用默認的內置模板* tag *,'{%now%}',而不是使用'now'的值作爲變量。 – 2010-07-16 10:13:05

1

爲什麼不使用time.time()?而對於創建日期,您首先必須將給定的行插入到數據庫中。這意味着你可以閱讀它。

from datetime import timedelta 

yourmodel.save() 

cdate= yourmodel.creation_date 

seconds = time.time() - time.mktime(cdate.timetuple()) 
timediff = str(timedelta(seconds=seconds)) 
相關問題