Can';Django模板标记中的t子字符串

Can';Django模板标记中的t子字符串,django,Django,我正在尝试向字符串添加尾随“s”,除非该字符串的最后一个字符是“s”。如何在Django模板中执行此操作?下面的[-1]导致错误: {{ name }}{% if name[-1] != "s" %}s{% endif %} 试试过滤器 Django模板系统提供的标记的功能类似于一些编程结构——用于布尔测试的if标记,用于 循环标记等–但这些标记并不是简单地作为 对应的Python代码,模板系统不会执行 任意Python表达式 使用。不确定这是否是您要查找的内容,但django有一个内置的模板

我正在尝试向字符串添加尾随“s”,除非该字符串的最后一个字符是“s”。如何在Django模板中执行此操作?下面的[-1]导致错误:

{{ name }}{% if name[-1] != "s" %}s{% endif %}
试试过滤器

Django模板系统提供的标记的功能类似于一些编程结构——用于布尔测试的if标记,用于 循环标记等–但这些标记并不是简单地作为 对应的Python代码,模板系统不会执行 任意Python表达式


使用。

不确定这是否是您要查找的内容,但django有一个内置的模板过滤器,可以对单词进行复数。这就是所谓的多元化。 你会想要这样的东西:

{{name | pluralize}}
看一看

{%if name | last!=“s”%}
执行此任务

{% if name|slice:"-1:"|first != "s" %}s{% endif %}

Django的切片过滤器无法正确处理无冒号的切片,因此切片:“-1”解决方案无法工作。此外,利用|第一个过滤器似乎可以达到目的

我试过了你的片段。我使用的名称是“Thomas”,比较表达式的左侧计算为“Thoma”而不是“s”。应该是“-1”(不带第二个冒号)。@DanielRoseman我尝试了你的建议,作为{name.slice:“-1”},但这再次计算为“Danie”而不是“l”(例如)。我正在运行Python 2.5.2。你的想法?不适用于这个问题。但它对于将数值的显示多元化的情况很有用。
{% if name|slice:"-1:"|first != "s" %}s{% endif %}