私は次のようなアイテムの辞書を持っています
{'Switch_all': 'N/A', 'Router_down': 'N/A', 'Switch_down': 'N/A', 'Router_all': 'N/A'}
そして、キー ex :Switch_all を使用して、django テンプレートでこの辞書を繰り返し処理したいと思います。
Switch_all のようなキーを指定すると、辞書からデータを取得できます
問題は、この変数を別のリストから動的に形成する必要があることです。たとえば、リストには次のデータが含まれます
['Swich','Router']
このリストを反復処理し、_up、_down などの文字列を追加して、辞書のキーの 1 つである新しい変数を作成する必要があります。
カスタムテンプレートフィルターを使用してみましたが、2つの引数を渡すのが難しいことがわかりました
テンプレートに含めたコードは
{{ value|dyndictval:header,"_up" }}
上記のコードの値はディクショナリであり、ヘッダーはスイッチ、ルーターなどの引数を取る変数であり、2 番目の引数 (ここでは「_up」) を追加すると、ディクショナリ (値) のキーが形成されます。
カスタムフィルターコードは
def dyndictval(d, key1):
keys = key1.split(',')
return d.get(keys[0]+keys[1],'')
以下のように with タグを使用して作成された別の変数を使用してこの要件を克服し、同じ変数を使用してカスタムフィルターに引数を渡しました
{% with header|add:"_up" as templatevar %}>>>>{{templatevar}}<<<<
{{ value|dyndictval:templatevar }}
{% endwith %}