Flask自定义过滤器模板不起作用

时间:2016-02-05 23:59:45

标签: templates flask jinja2

我正在尝试将自己的自定义过滤器添加到我正在撰写的Flask应用中的模板中。目标是显示一个显示帖子“天前”时间的显示(类似于Twitter所做的)。

我的 views.py 文件包含以下内容:

import datetime

@app.template_filter('days_ago') 
def days_ago(t=datetime.timedelta(0)):
    diff = (datetime.datetime.now() - t)
    return diff.days

@app.route('/posts/<id>')
def view_post(id):
    p = models.Post.query.get(id)
    return render_template('view_post.html', 
                    post = p)

我的 view_post.html 模板包含:

...
<p>{{ post.created_at | days_ago }} days old</p>
...

我一直在遇到这个错误:

TypeError: unsupported operand type(s) for -: 'datetime.datetime' and 'NoneType'

我试图让参数t默认为datetimetimedelta个对象,但我仍然会遇到相同的错误。任何线索?感谢您提前的时间!

0 个答案:

没有答案