我正在尝试格式化我的博客标签的显示格式。我可以列出tag1,tag2,tag3等等…很好。我甚至想出了如何消除最后一个逗号:
{% if not forloop.last %}, {% endif %}
我的问题是。。。我怎么处理“和”?在
例如:tag1、tag2和tag3。在
这是规则
如果两个标记=并且没有逗号分隔。 如果3个或更多标记=从第二个到最后一个得到“和” 不要在列表末尾加逗号或和。在
我希望我可以在jinja2中用这样的东西来创建那些显示规则。。。在
^{pr2}$当然,这段代码会导致
raise TemplateSyntaxError, "'if' statement improperly formatted" TemplateSyntaxError: 'if' statement improperly formatted
我感觉有人会告诉我在应用程序中执行此操作,而不是模板。。但请解释一下为什么。。。我应该用一个自定义的过滤器吗?在
建议使用remove as much logic as possible from templates,这样您就可以专注于表示并避免在页面呈现中添加失败点,但始终存在边界情况。在
如果您定义一个类似于内置的
join
的自定义过滤器,那么您将保持一个看起来更整洁的模板。下面是一个接受纯文本标记名列表并返回字符串的示例:模板使用:
^{pr2}$如果您还在筛选器中添加标记,则必须对结果应用
safe
筛选器,这样它就不会被转义。在相关问题 更多 >
编程相关推荐