LoginSignup
2
3

More than 3 years have passed since last update.

[jinja2] 変数を二重展開したい

Last updated at Posted at 2019-11-18

こんな感じの変数があるとして

{% set id = 1 %}
{% set user.1.name = 'hoge' %}

こうした時に、 id = 1 が入って、 user.1.name になって、 hoge が返ってくるのを期待しますがうまくいきません。

{{ user.id.name }}

=> 'user.id.name'

idが展開されていません。 idを展開させてあげたいのですが、どうしたらいいのでしょう :thinking:

{{ user.'{{ id }}'.name }}
=> 'user.'{{ id }}'name'

{{ 'user.' + id + 'name' }}
=> user.1.name(idは展開されるけど名前が展開されない)

{{ 'user.' ~ id ~ 'name' }}
=> user.1.name(idは展開されるけど名前が展開されない)

この辺は全部ダメでした。結論から言うと、これでできます。

{{ user[id].name }}
=> 'hoge'

無駄に悩んだのでメモ。
三重展開とかすることが今後あるかわからないですが、その時も同じ手法で可能なのかきになるので今度調べてみよう

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3