2010-07-16 56 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)) 
相关问题