2015-04-16 31 views
0

您好我有Django的模板标签,Django的模板标签过滤器显示“浮点数是必需的”错误

@register.filter("timestamp") 
def timestamp(value): 
    try: 
     return datetime.fromtimestamp(value).strftime('%Y-%m-%d %H:%M:%S') 
    except AttributeError: 
     return 'error' 
    except KeyError: 
     return 'error' 

和我通过这个过滤器到我的网页如下,

<td>{{ table.last_updated|timestamp}}</td> 

但返回一个错误,“需要一个浮点数”。请帮助我。由于

+0

btw,my table.last_updated是一个unixtimestamp –

回答

0

如果使用MySQLdb模块来从你database.It数据将转换您unixtimestamp db column到Python类型datetime.datetime。而datetime.fromtimestamp功能使用float对象作为输入PARAMS。

因此,您应该在时间戳功能中添加条件。如果value的类型为datetime.datetime,请将该值转换为float

import time 
import datetime 
print time.mktime(datetime.datetime.now().utctimetuple()) 
0

感谢amow。这是富有成效的。我尝试了下面的方法,它工作。

@register.filter("timestamp") 
def timestamp(value): 
    if value is not None: 
     return datetime.fromtimestamp(value).strftime('%Y-%m-%d %H:%M:%S') 
    else: 
     return 'None'