我有一个Product Name
列表,例如5个元素,但我想通过使用命令在模板中对其进行切片:
myList
或此命令:
{% for item in myList|slice:"3" %}
{% for item in myList|slice:":3" %}
和slice:"x"
之间的区别是什么? (我目前没有安装django的机器,但我很好奇)
答案 0 :(得分:4)
slice:"3"
和slice:":x"
都是相同的,因为它们会从列表中返回前3个元素
但是如果你使用slice:"2:x"
那么它将从列表的第一个中留下2个项目并从第3个项目中取出你在x变量中提到的数字,它基本上是参与其中
答案 1 :(得分:3)
他们产生相同的结果:
>>> 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 slice
过滤器内部使用slice
python函数(或类型)。
class slice(stop) # slice|"3" -> slice(3) -> slice(None, 3, None) class slice(start, stop[, step]) # slice|":3" -> slice(None, 3, None)