Dor*_*ore 1 html python django jinja2
我已阅读 Jinja 文档并正在使用truncate过滤器。我完全按照文档中的定义使用它。
从文档:
truncate(s, length=255, killwords=False, end='...', leeway=None) 返回字符串的截断副本。长度由第一个参数指定,默认为 255。如果第二个参数为真,过滤器将按长度剪切文本。否则它将丢弃最后一个字。如果文本实际上被截断,它将附加一个省略号(“...”)。如果你想要一个不同于“...”的省略号,你可以使用第三个参数来指定它。长度仅超出第四个参数中给出的容差范围的字符串将不会被截断。
这是我的代码:
{% if post.replies.all %}
<ul class="accordion" data-accordion data-multi-Expand="true" data-allow-all-closed="true">
{% for reply in post.replies.all %}
<li class="accordion-item" data-accordion>
<a href="#" class="accordion-title">{{reply.by}}: {{reply.content|truncate(14)}}</a>
<div class="accordion-content" data-tab-content>
<img src="{{ reply.by.profile.img_url }}" class="thumbnail" width="50" height="50">
<p>{{ reply.content }}</p>
</div>
</li>
{% endfor %}
</ul>
{% endif %}
Run Code Online (Sandbox Code Playgroud)
测试后我得到以下回溯:
我究竟做错了什么?
您根本没有使用 Jinja。您正在使用 Django 模板语言。
Django 的内置过滤器记录在此处;截断字符串的过滤器称为truncatechars。您还需要使用 Django 语法将参数传递给过滤器。
{{reply.content|truncatechars:14}}
Run Code Online (Sandbox Code Playgroud)