模板中的Django切片号码
问题描述:
有没有办法在django模板中获取给定数字的多个数字?模板中的Django切片号码
例如:
{{ some_num|get_digit:2 }}
会给你第二个最右边的数字。对于1224531这将是3
有没有办法得到最后3位数字或前5位数字?像python的切片?
类似:
{{ some_num|get_digits:2,5}}
答
有一个的 “切片” 模板标签
https://docs.djangoproject.com/en/dev/ref/templates/builtins/#slice
它使用相同的语法,Python的名单切片。
例子:
{{ some_list|slice:":2" }}
在Python这相当于:
some_list[:2]
BTW你的第二个例子是"2:5"
不"2,5"
NB。 Python切片适用于任何“序列”。字符串和列表是序列。数字不是!
答
{{1234567|make_list|slice:'2:5'|join:''}}
斯特凡诺的答案是正确的轨道上。您需要一个预处理步骤将您的号码转换为列表,以及一个后处理步骤,将该列表合并回字符串。
答
任何额外的过滤器可以在切片之前将数字转换为字符串。我用这些变种:
{{ some_num|slugify|slice:"2:5" }}
和
{{ some_num|stringformat:"d"|slice:"5:10" }}
搜索“Django的模板标签片”将带来你答案! – Stefano 2012-01-11 23:32:18