Django:检查字符串中的最后一个字符

时间:2015-01-21 20:23:55

标签: python django string

我的观点中有这个字符串doc.specalization.name。如果它以s结尾,我想删除s

我尝试了这段代码,但我得到了Could not parse the remainder: '('s')' from 'doc.specialization.name.endswith('s')'

 {% if doc.specialization.name.endswith('s') %}
        <h3> {{doc.specialization.name|slice:":-1"}} </h3>   
 {% endif %}

3 个答案:

答案 0 :(得分:2)

您无法在django模板中运行python代码。您可以使用内置过滤器:

{% ifequal doc.specialization.name|default:""|slice:"-1" "s" %}
    {# do your stuff #}
{% endifequal %}

default只是None

的后备

slice here

上的文档

您甚至可以使用with tag来避免多次计算相同的事情

答案 1 :(得分:2)

Karthikr的答案很接近。计划在Django的未来版本中弃用Ifequal,因此您可能希望使用以下方法。您还需要在“-1”之后添加“:”。

{% if doc.specialization.name|default:""|slice:"-1:" == "s" %}
  <h3> {{ doc.specialization.name|slice:":-1" }} </h3>
{% else %}
  <h3> {{ doc.specialization.name }} </h3>
{% endif %}

答案 2 :(得分:0)

您最好在视图代码中执行此操作,而不是在模板中执行此操作。例如:

for doc in doc_records:
    if doc.specialization.name.endswith('s'):
        doc.specialization.name = doc.specialization.name[:-1]

但不要保存记录,假设这仅用于显示目的