1

私は次のようなアイテムの辞書を持っています

{'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 %}
4

1 に答える 1

0

これはビューで行う必要があります。テンプレートには最小限のロジックのみを含める必要があります。

ビュー内では、これは python を使用して非常に簡単に行うことができます。助けが必要な場合は、質問への編集としてコードを投稿してください。人々が助けてくれます。

于 2013-08-07T08:17:24.430 に答える