我的观点中有这个字符串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 %}
答案 0 :(得分:2)
您无法在django模板中运行python代码。您可以使用内置过滤器:
{% ifequal doc.specialization.name|default:""|slice:"-1" "s" %}
{# do your stuff #}
{% endifequal %}
default
只是None
值
您甚至可以使用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]
但不要保存记录,假设这仅用于显示目的