truncatechars有效时,模板标签切片将不起作用

时间:2019-05-30 21:02:29

标签: python django

第1季办公室。我要删除-theOffice。因此,我做了season1 | truncatechars:“ 9”,但这样就给了第1季... 我不想看... 因此,我使用了season1 | slice:“:9”,但这没有任何作用。 这是我的代码。

        <a href="{% url 'season_detail' slug=all_episode.season.slug %}">{{ all_episode.season|slice:":5" }}

我的完整代码

<div class="row">
  {% for all_episode in episode %}
    <div class="col-6 card" style="padding:20px">
      <a href="{% url 'episode_detail' slug=all_episode.slug %}">
        <img class="card-img-top" src='{{all_episode.image.url}}'>
      </a>
      <div class="card-body">
        <h5 class="card-title">
          <a href="{% url 'episode_detail' slug=all_episode.slug %}">{{ all_episode.title }}</a>
        </h5>
        <p class="card-text">{{ all_episode.story |slice:":100" }}...</p>
      </div>

      <div class="card-footer">
        <small class="text-muted">
          <span class="h5">
            <a href="{% url 'series_detail' slug=all_episode.series.slug %}">{{ all_episode.series }}</a>
          </span> / 
          <span class="h6">
            <a href="{% url 'season_detail' slug=all_episode.season.slug %}">{{ all_episode.season|slice:":9" }}     </a>
          </span>
        </small>
      </div>
    </div>
  {% endfor %}
</div>

1 个答案:

答案 0 :(得分:0)

那是因为您在模板过滤器中(或至少在问题文本中,例如slice:" :9"中添加了空格

您应该这样写:

{{ all_episode.season|slice:":-9" }}

不是:

{{ all_episode.season|slice:" :-9" }}

-9表示您从字符串的末尾到字符串的开头进行计数,因此此处将省略9个字符。 -1将因此删除最后一个字符。

例如:

>>> Template('{{ s|slice:":-9" }}').render(Context({'s': 'season1-theOffice'}))
'season1-'