在jinja2模板中,我如何检查mongo数据库中的元素是否是三个可能的字符串之一?

时间:2013-05-10 17:55:08

标签: python mongodb pyramid jinja2

我的模板有if / else功能来处理页面上的显示按钮,我设法添加一个elif语句,只有当mongo数据库中的元素不是三个值之一时才会显示按钮。我试图清理它,因为elif在两个jinja2模板中出现了四次。我现在使用的代码如下所示:

{% elif (
   ('string1' not in database.category) and ('string2' not in database.category) and
   ('string3' not in database.category)) %}

我已经尝试声明一个元组并执行:

{% set hidebuttons = ['string1' , 'string2' , 'string3'] %} //sets tuple
{% elif not database.category in hidebuttons %} // checks if value not in tuple

以及许多其他方法可以使这项工作,但每次我重新加载网页,我不断看到按钮。非常感谢任何建议。

1 个答案:

答案 0 :(得分:0)

我相信这应该在您的视野中,而不是您的模板。如果您需要在多个地方进行查询,可以创建一个实用程序函数来获取所需的结果,然后在视图中,您可以调用该函数并将数据作为上下文传递给模板

如果你使用view_config装饰器来渲染模板,它可能是这样的:

@view_config(renderer='templates/foo.pt')
def my_view(request):
    show_buttons = logic_to_determine_should_buttons_be_shown()
    return {'show_buttons': show_buttons }


# your template
{% if show_buttons %}
  show buttons
{% endif %}