0

我的模板具有 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

以及许多其他方法来完成这项工作,但每次我重新加载网页时,我都会看到我不应该看到的按钮。任何意见是极大的赞赏。

4

1 回答 1

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 %}
于 2013-05-10T18:10:52.737 回答