Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django绑定中需要python len()抛出运算符_Python_Django - Fatal编程技术网

django绑定中需要python len()抛出运算符

django绑定中需要python len()抛出运算符,python,django,Python,Django,我不熟悉Python和Django,在html模板中有以下代码行: {% if len(dato.titulo) > 35 %} {{dato.titulo[:35] + '...'}} {% else %} {{ dato.titulo }}{% endif %} {%if len(dato.titulo)>35%}位抛出异常。我尝试使用truncatechars过滤器,但安装的django版本显然很旧,没有过滤器。我如何才能做到这一点(如果字符串超过35个字符,则截断该字符串)?在d

我不熟悉Python和Django,在html模板中有以下代码行:

{% if len(dato.titulo) > 35 %} {{dato.titulo[:35] + '...'}} {% else %} {{ dato.titulo }}{% endif %}
{%if len(dato.titulo)>35%}
位抛出异常。我尝试使用truncatechars过滤器,但安装的django版本显然很旧,没有过滤器。我如何才能做到这一点(如果字符串超过35个字符,则截断该字符串)?

在django模板中,使用筛选器获取字符串的长度,因此请根据需要更新您的行

{% if dato.titulo|length > 35 %} {{dato.titulo[:35] + '...'}} {% else %} {{ dato.titulo }}{% endif %}
似乎您想要截断字符串,在这种情况下,您可以使用过滤器。因此,无需检查长度并手动截断字符串。照办

{{ dato.titulo|truncatechars:35 }}

如果没有可用的
truncatechars
,请使用@Leonardo.Z提到的
|slice
,它将截断字符串,但不会在末尾添加
..

{{ dato.titulo|slice:35 }}


或者编写自己的模板过滤器来完成此操作。

使用
dato.titulo | length>35
。谢谢!这修复了if上的错误,但是现在我在
dato.titulo[:35]
上得到了和错误,这表示“}}预期”。。。正如我在问题中所说,我不能使用truncatechars,因为我安装的django版本不支持它,而且升级到最新版本目前不可行。有没有办法解决这个问题?@NicolásStraubValdivieso将
dato.titulo[:35]
更改为
dato.titulo | slice:::35“
@NicolásStraubValdivieso编写一个自定义标记,该标记不会截断功能。@NicolásStraubValdivieso,如果您无法升级django。请考虑写一个模板。切片在unicode上工作。