2017-06-30 11 views
4

私はmyListのリストを持っています。 5つの要素が、私はコマンドを使用して、テンプレートにそれをスライスしたい:djangoスライスフィルタの用途の違い

{% for item in myList|slice:"3" %}

か、このコマンド:

{% for item in myList|slice:":3" %}

slice:"x"slice:":x"の違いは何ですか?彼らは、同じ結果を生成

答えて

3

slice:"3"slice:":x"は両方とも、彼らがリスト

から最初の3つの要素を返しますが、あなたはslice:"2:x"を使用する場合、それは、リストの最初から2つの項目を残すだろうと同じであり、 x変数で言及した番号まで3番目の項目から取る、その基本的には部分を取る

3

(私は現在、Djangoのインストールとマシンへのアクセスが、私は興味がありません):

>>> from django.template import Template, Context 
>>> Template('{{xs|slice:"3"}} {{xs|slice:":3"}}').render(Context({ 
... 'xs': list(range(10)) 
... })) 
u'[0, 1, 2] [0, 1, 2]' 

ジャンゴsliceフィルタは内部slice Python関数(またはタイプ)を使用します。

class slice(stop) # slice|"3" -> slice(3) -> slice(None, 3, None) 
class slice(start, stop[, step]) # slice|":3" -> slice(None, 3, None) 
関連する問題