4

我已经尝试了几种方法。根据文档,我在我的应用程序的 ini 中完成了此操作:

[app:myapp]
#...
jinja2.filters =
    islist = myapp.machines.islist

我的功能很简单:

def islist(item):
    return isinstance(item, list)

我可以看出正在读取 ini 文件中的过滤器设置行,因为如果我的islist函数的虚线路径错误,应用程序会引发错误。

但是,当我尝试islist在模板中使用该函数时,该模板找不到该函数。

{% if islist([]) %}a list{% else %}not a list{% endif %}

结果如下:

UndefinedError: 'islist' is undefined

我究竟做错了什么??任何帮助都是极好的。

4

1 回答 1

5

我认为过滤器不会作为命名空间中的函数公开,而是仅通过管道调用。例如{{ foo | some_filter }}.

于 2012-08-15T04:30:48.147 回答