jinja2中的python三元给出了TemplateSyntaxError:期望的标记名称

时间:2016-03-10 11:06:05

标签: python css python-2.7 jinja2

我有一个表,如果person.storyPublished的值为true,我想更改tr的背景颜色,否则什么都不做。

我的代码如下所示:

 {% for person in people %}
    <tr class="row-person {% '.row-story-published' if  person.storyPublished  else ' ' %}" >
    <td>
    {{ person.name }}
    </td>
    ...

我收到此错误:

jinja2.exceptions.TemplateSyntaxError
TemplateSyntaxError: tag name expected

,CSS部分在这里:

<style>
    .row-story-published{
        background-color: #b3ffb3;
    }
</style>

为什么会这样?我想念的是什么,我没有注意到?任何帮助:)

2 个答案:

答案 0 :(得分:8)

您使用“{%%}”想要获取if,endif等标记。 如果你只想执行一段python代码,比如你的三元表达式,你应该使用像这样的双括号

{{ 'row-story-published' if  person.storyPublished  else ' ' }}

答案 1 :(得分:1)

模板语言与Python不同,因此语法不同。您不能在模板中使用Python的惯用语法。

<tr class="row-person {% if  person.storyPublished %} row-story-published {% endif %}" >