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

Egz*_*Est 6 css python jinja2 python-2.7

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

我的代码看起来像这样:

 {% for person in people %}
    <tr class="row-person {% '.row-story-published' if  person.storyPublished  else ' ' %}" >
    <td>
    {{ person.name }}
    </td>
    ...
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

jinja2.exceptions.TemplateSyntaxError
TemplateSyntaxError: tag name expected
Run Code Online (Sandbox Code Playgroud)

CSS部分在这里:

<style>
    .row-story-published{
        background-color: #b3ffb3;
    }
</style>
Run Code Online (Sandbox Code Playgroud)

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

Min*_*ato 11

您使用"{%%}"想要获得if,endif等标签.如果您只想执行一段python代码,就像您的三元表达式一样,您应该使用双括号

{{ 'row-story-published' if  person.storyPublished  else ' ' }}
Run Code Online (Sandbox Code Playgroud)