Фильтр тегов шаблонов 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>

Но он возвращает ошибку, "требуется поплавок". Пожалуйста помоги мне с этим. Спасибо

2 ответа

Решение

Если вы используете MySQLdb Модуль для получения данных из вашей базы данных. Он будет конвертировать ваши unixtimestamp db column на тип питона datetime.datetime.А также datetime.fromtimestamp функция использовать float Объект в качестве входных параметров.

Таким образом, вы должны добавить условие в вашу функцию отметки времени. Если тип value является datetime.datetime, преобразовать значение в float,

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

Спасибо, все в порядке. Это было плодотворно. Я попробовал следующий метод, и это сработало.

@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'
Другие вопросы по тегам