ジンジャに変数を設定する


273

jinjaで変数を別の変数に設定する方法を知りたいのですが。説明します。サブメニューがあり、どのリンクがアクティブであるかを表示したいと思います。私はこれを試しました:

{% set active_link = {{recordtype}} -%}

ここで、recordtypeはテンプレートに指定された変数です。


18
グーグルからここに着陸する人々:あなたはおそらく、ここで質問者が犯した特定の構文の間違いやそれを修正する方法ではなくsetタグの公式ドキュメントに主に興味があるでしょう、それはこことリンクされた重複アドレスでトップが答えるものです。
マークアメリー

1
@MarkAmery Ty!特にこの部分jinja.palletsprojects.com/en/2.11.x/templates/…は非常に役に立ちます。
ruohola

回答:


546

{{ }}するテンプレート伝える印刷する値をあなたがしようとしているように、これは式では動作しません。代わりに、{% set %}テンプレートタグを使用してから、通常のPythonコードと同じ方法で値を割り当てます。

{% set testing = 'it worked' %}
{% set another = testing %}
{{ another }}

結果:

it worked

2
私の変数がdictの場合、{%set dict.key = 'test'%}が機能しません
Ib33X 2011

削除された回答には、この回答の補足情報として機能するこのリンクも含まれていました:jinja.pocoo.org/docs/tricks/#highlighting-active-menu-items
Pascal

素晴らしい説明と簡単な説明でした。大好きです:)
Faris Rayhan 2018

グローバルなjinja変数を作成し、それをjinja変数を埋め込んだhtmlファイル全体で使用できますか?@Soviut
スリランカテスト

55

複数の変数の割り当ての省略形

{% set label_cls, field_cls = "col-md-7", "col-md-3" %}

3
これは質問に答えるのに近づいていないようですか?
ジョンRペリー

1
@JohnRPerryしかし、それは受け入れられた答えへの素晴らしい追加です。
ミートSinojia

25

このように設定するだけです

{% set active_link = recordtype -%}

7
なぜ特にそう好きなのですか(最初ではなく最後にマイナス記号があります)?私が間違っていなければ、これは末尾の空白を削除しますが、先頭の空白は削除しません。何のために?
Leonid

15
その元の質問で¯\ _(ツ)_ / ¯–
グラハムPヒース
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.