Django切片过滤器用法的区别

2024-04-20 10:12:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个myList列表,其中包含5个元素,但我想使用以下命令在模板中对其进行切片:

{% for item in myList|slice:"3" %}

或此命令:

{% for item in myList|slice:":3" %}

slice:"x"slice:":x"有什么区别?(我目前无法访问安装了django的机器,但我很好奇)


Tags: djangoin命令机器模板元素列表for
2条回答

slice:"3"slice:":x"都是相同的,因为它们将返回列表中的前3个元素

但是如果你使用slice:"2:x",那么它将保留列表第一项中的2个项目,从第三项开始,直到你在x变量中提到的数字,它基本上是一部分

它们产生相同的结果:

>>> from django.template import Template, Context
>>> Template('{{xs|slice:"3"}} {{xs|slice:":3"}}').render(Context({
...    'xs': list(range(10))
... }))
u'[0, 1, 2] [0, 1, 2]'

Django^{}过滤器内部使用^{}python函数(或类型)。你知道吗

class slice(stop)   #  slice|"3" -> slice(3) -> slice(None, 3, None)
class slice(start, stop[, step])  # slice|":3" -> slice(None, 3, None)

相关问题 更多 >