Не может подстрока в теге шаблона Django - PullRequest
4 голосов
/ 20 января 2012

Я пытаюсь добавить завершающие 's' к строке, если последний символ строки не является 's'.Как мне сделать это в шаблоне Django?[-1] ниже вызывает ошибку:

{{ name }}{% if name[-1] != "s" %}s{% endif %}

Ответы [ 5 ]

4 голосов
/ 20 января 2012

попробуйте фильтр ломтик

{% if name|slice:"-1" != "s" %}
2 голосов
/ 20 декабря 2013
{% if name|slice:"-1:"|first != "s" %}s{% endif %}

Фильтр срезов Django неправильно обрабатывает срезы без двоеточия, поэтому решение среза "- 1" не работает.Использование первого фильтра в дополнение, кажется, делает свое дело.

1 голос
/ 20 января 2012

Не уверен, что это то, что вы ищете, но в django есть встроенный шаблонный фильтр, который множит словаЭто называется просто: множественное число.Вы бы хотели что-то вроде этого:

{{name | pluralize}}

Взгляните на https://docs.djangoproject.com/en/dev/ref/templates/builtins/

1 голос
/ 20 января 2012

Система шаблонов Django предоставляет теги, которые функционируют аналогично некоторым программным конструкциям - тег if для логических тестов, тег for для циклов и т. Д. - но они не просто выполняются как соответствующий код Python, асистема шаблонов не будет выполнять произвольные выражения Python.

Использовать встроенный фильтр среза .

0 голосов
/ 12 мая 2013

{% if name|last != "s" %} делает работу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...