номера среза Джанго в шаблоне - PullRequest
7 голосов
/ 12 января 2012

Есть ли способ получить несколько цифр данного номера в шаблоне django?

Например:

{{ some_num|get_digit:2 }} 

даст вам вторую самую правую цифру.Для 1224531 это будет 3

Есть ли способ получить последние 3 цифры или первые 5 цифр?Как нарезка питона?

что-то вроде:

{{ some_num|get_digits:2,5}}

Ответы [ 3 ]

21 голосов
/ 12 января 2012

Существует тег шаблона «slice»

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

Используется тот же синтаксис, что и для нарезки списка Python.

Пример:

{{ some_list|slice:":2" }}

в python это эквивалентно:

some_list[:2]

Кстати, ваш второй пример будет "2:5" не "2,5"

NB.Нарезка Python работает на любой «последовательности».Строки и списки являются последовательностями.Числа не!

2 голосов
/ 03 марта 2013

{{1234567|make_list|slice:'2:5'|join:''}}

Ответ Стефано на правильном пути. Вам необходим этап предварительной обработки, чтобы превратить ваш номер в список, и шаг последующей обработки, чтобы объединить этот список обратно в строку.

1 голос
/ 05 июня 2013

любой дополнительный фильтр, который преобразует число в строку перед нарезкой, будет работать. Я использовал эти варианты:

{{ some_num|slugify|slice:"2:5" }}

и

{{ some_num|stringformat:"d"|slice:"5:10" }}
...