テンプレートエンジンで3つ目以降から表示させたい

sliceフィルターはDjangoテンプレート内でリストやQuerySetをスライスするためのものですが、テンプレート内で直接リストの特定の範囲を指定することは難しいです。しかし、リストのスライスをビューで行ってからテンプレートに渡すことで目的を達成できます。

以下は具体的な例です。

ビューでのスライス:

python
def your_view(request): parameters = your_function_to_get_parameters() sliced_parameters = parameters[2:] # 3番目以降の要素をスライス return render(request, 'your_template.html', {'sliced_parameters': sliced_parameters})

テンプレート内での表示:

html
{% for parameter in sliced_parameters %} <div class="mb-3"> <label for="{{ parameter }}" class="form-label">{{ parameter }}</label> <input type="text" class="form-control" id="{{ parameter }}" name="{{ parameter }}" value="{{ request.POST.parameter }}"> </div> {% endfor %}

このように、ビューでparametersリストをスライスしてから、sliced_parametersとしてテンプレートに渡します。その後、テンプレート内でforループを使用してlabelinputを表示します。

未分類

Posted by ぼっち