2011-10-08 87 views
2

我试图使用Django的{{ timestamp|date:"d M Y" }}功能将时间戳格式化为日期。Django日期过滤器不显示呈现模板中的格式化时间戳

我遇到了一个问题,我可以用{{ timestamp }}输出并查看原始时间戳,但当我的页面使用{{ timestamp|date:"d M Y" }}呈现时,通过过滤器的格式不会输出任何内容。

例如,当我加载页面时,{{ timestamp }} - {{ timestamp|date:"d M Y" }}的结果是1317945600 -

关于我可能做错什么的建议?

回答

5

问题是,日期不想要一个时间戳,它想要一个日期时间或日期对象。 你必须解析Python中的时间戳或制作一个模板标签。

它添加到templatetags/mytags.py

from datetime import datetime 
from django import template 
register = template.Library() 

@register.filter("timestamp") 
def timestamp(value): 
    try: 
     return datetime.fromtimestamp(value) 
    except AttributeError: 
     return '' 

然后用它

{{ some_timestamp_value|timestamp|date:"format..." }}