djangoテンプレート内で特定の数値の複数の桁を取得する方法はありますか?
例えば:
{{ some_num|get_digit:2 }}
右から2番目の数字が表示されます。 1224531の場合は3になります
最後の3桁または最初の5桁を取得する方法はありますか? Pythonのスライスのように?
何かのようなもの:
{{ some_num|get_digits:2,5}}
推奨答え
「スライス」テンプレートタグがあります
https://docs.djangoproject.com/en/dev/ref/templates/builtins/#slicePythonのリストスライスと同じ構文を使用します。
例:
{{ some_list|slice:":2" }}
Pythonでは、これは次と同等です。
some_list[:2]
ところで、2番目の例は
"2:5"
ではなく
"2,5"
になります
注意。 Pythonスライシングは任意の「シーケンス」で機能します。文字列とリストはシーケンスです。数字は違います!
その他答え #1
{{1234567|make_list|slice:'2:5'|join:''}}
ステファノの答えは正しい方向に進んでいます。番号をリストに変換する前処理ステップと、そのリストを文字列にマージして戻す後処理ステップが必要です。
その他答え #2
スライスする前に数値を文字列に変換する追加のフィルターはすべて機能します。私はこれらのバリアントを使用しました:
{{ some_num|slugify|slice:"2:5" }}
そして
{{ some_num|stringformat:"d"|slice:"5:10" }}