有没有办法在django模板中获取给定数字的多个数字?
例如:
{{ some_num|get_digit:2 }}
会给你第二个最右边的数字。对于1224531,它将是3
有没有办法获得最后3位数或前5位数?像python的切片一样?
类似的东西:
{{ some_num|get_digits:2,5}}
答案 0 :(得分:21)
有一个“切片”模板标签
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切片适用于任何“序列”。字符串和列表是序列。数字不是!
答案 1 :(得分:2)
{{1234567|make_list|slice:'2:5'|join:''}}
斯特凡诺的回答是正确的。您需要一个预处理步骤将您的号码转换为一个列表,以及一个后处理步骤,将该列表合并回字符串。
答案 2 :(得分:1)
在切片之前将数字转换为字符串的任何额外过滤器都可以使用。我使用了这些变体:
{{ some_num|slugify|slice:"2:5" }}
和
{{ some_num|stringformat:"d"|slice:"5:10" }}
答案 3 :(得分:0)
您只需要编写如下代码即可进行切片:-
{{valueformoney|slice:"0:4"}}
{% for cloth in valueformoney|slice:"0:4" %}
<div class="product h-100 w-100 border rounded ">
<div class="img__container">
<img src="{{cloth.cloth_image.url}}" alt="" />
</div>
<div class="product__bottom">
<div class="price">
<span class="text-danger"> <del>{% min_price cloth as result %} {{ result|rupee}}</del></span>
<span>{% discount_price cloth as result %}{{result|rupee}}</span>
<span class="float-right badge p-3 badge-info">Save {{cloth.cloth_discount}}% </span>
</div>
<h3 class="p-4">{{cloth.cloth_name}}</h3>
<div class="button">
<a href="/product_detail/{{cloth.cloth_slug}}" class="btn-block">See More</a>
</div>
</div>
</div>
{% endfor %}