django切片数字在模板中

9-b*_*its 7 django django-templates django-template-filters

有没有办法在django模板中获取给定数字的多个数字?

例如:

{{ some_num|get_digit:2 }} 
Run Code Online (Sandbox Code Playgroud)

会给你第二个最右边的数字.对于1224531,它将是3

有没有办法获得最后3位数或前5位数?像python的切片?

就像是:

{{ some_num|get_digits:2,5}}
Run Code Online (Sandbox Code Playgroud)

Ste*_*ano 22

有一个"切片"模板标签

https://docs.djangoproject.com/en/dev/ref/templates/builtins/#slice

它使用与Python列表切片相同的语法.

例:

{{ some_list|slice:":2" }}
Run Code Online (Sandbox Code Playgroud)

在python中这相当于:

some_list[:2]
Run Code Online (Sandbox Code Playgroud)

顺便说一句,你的第二个例子"2:5"不是"2,5"

NB.Python切片适用于任何"序列".字符串和列表是序列.数字不是!


Mat*_*ijs 6

任何在切片之前将数字转换为字符串的额外过滤器都可以工作。我使用了这些变体:

{{ some_num|slugify|slice:"2:5" }}
Run Code Online (Sandbox Code Playgroud)

{{ some_num|stringformat:"d"|slice:"5:10" }}
Run Code Online (Sandbox Code Playgroud)