在 jinja2 中创建日期过滤器

Creating a date filter in jinja2

我正在尝试使用过滤器计算出我的 jinja2 中记录的年龄。我通过以下方式创建了一个简单的过滤器。日期存储在 mongodb 字段中,其原始格式应为 python 日期时间对象的格式。这是记录的示例:

 "date_update": {
        "$date": "2016-02-29T11:13:41.730Z"
    }, 


app.jinja_env.filters['record'] = lambda u: record(u)

def record(date_obj):
    print(date_obj)
    print(type(date_obj))
    return (datetime.datetime.today() - date_obj).days 

我按以下方式使用过滤器:

{{  myrec.date_update|record }}

如果我查看输出,我会看到以下内容:

class 'jinja2.runtime.Undefined'

所以我的问题是,我应该如何以正确的格式处理 jinja2 中的日期。

这看起来像是您模板中的未知变量名称。从您到目前为止 post 的所有内容来看,不清楚您是否首先将变量 myrec 传递给模板渲染器。因此,为了获得更好的帮助,请 post 展示错误的最小、独立的示例。