10

索引.html

<td>{% if place or other_place or place_description%}{{ place}} {{ other_place}} {{place_description}}</td>

这是显示模板中的所有数据。如果字符串长度超过 80,我想截断字符串。

条件是, 1.如果place变量超过80个字符,应该截断它们,不需要显示其他两个变量,如other_place和place_description。

2.如果place变量和other_place变量超过80个字符,在这种情况下应该从place_variable中截断,不需要显示place_description变量。

3.如果这三个都是他们的并且第80个字符是由place_description组成的,需要从他们截断。

所有字段都不是强制性的,所以无论要显示什么字段,它都应该只显示 80 个字符。

需要帮助才能做到这一点。

谢谢

4

3 回答 3

17

您可以将slice用于 django 1.4 之前的版本:

{% if place or other_place or place_description%}
    {% with place|add:other_place|add:place_description as pl %}
        {% if pl|length > 80 %}
            {{pl|slice:80}}...
        {% else  %}
            {{pl }}
        {% endif %}
    {% endwith %}
{% endif %}

如果您使用 django 1.4 或更高版本,

你可以使用truncatechars

{% if place or other_place or place_description%}
    {% with place|add:other_place|add:place_description as pl %}
       {{pl|truncatechars:80}}
    {% endwith %}
{% endif %}
于 2013-07-11T14:38:29.220 回答
4

您可能可以使用 add/truncatechars 的组合来做到这一点,例如

{{ place|add:other_place|add:place_description|truncatechars:80}}
于 2013-07-11T14:43:20.257 回答
0

您还可以使用 'cut',它是 django 内置模板的一部分

例如,如果

{{ file.pdf.name}}

给出“商店/pdfs/verma2010.pdf”

{{ file.pdf.name | cut:'store/pdfs/'}}

会给'verma2010.pdf'

于 2021-12-09T18:28:46.697 回答