2016-11-08 11 views
0

私はこの問題を回避する方法を見つけることができません。ループ中のunqiue div IDにJinja2を使用していますか?

私は、データベースのいくつかの異なるテーブルから入力を取るテンプレートを持っています。これらのテーブルにはx量の情報が含まれています。いくつかの情報を表示するには、私はそれが含まれているdivを非表示にJavaScriptのビットを使用しています。しかし、そのdiv id = {{row.id}}は、jinjaのforloopの間に読み込まれます。私はそれが別のテーブルから来ている場合、{{row.id}}が異なる{{row.id}}と同じになることができることを認識するまで、最初はうまくいきました。

{% for row in packages %} # Packages is one of the tables 
<div id="{{ row.id }}"> 
{{ row.price }} 
{{ row.date }} 
..etc 
</div> 
<button onClick="toggleDiv("{{ row.id }}">Show Content</button> 

other stuff in between... 

{% for entry in services %} # Services is one of the tables 
<div id="{{ entry.id }}"> # is it possible to do something like entry.id + {{ loop.index }} ? I'm not positive that would make it unique tho. 
{{ entry.price }} 
{{ entry.date }} 
..etc 
</div> 
<button onClick="toggleDiv("{{ entry.id }}">Show Content</button> 

だから私はに実行しています問題は、彼らが異なるテーブルから来るので、それがrow.id == entry.id可能であるということです。私は多分私はdivのIDを描画するためにランダムなユニークな数字で大きなリストを使用することができるかを把握しようとしていた?私はそれを達成するためにどのように私はジンジャを得ることができるか分からないのですか?私はここで運が尽きていますか?これはこのテンプレートの最後の大きなハードルですので、私はいくつかの解決策を見つけるのが大好きです..どんな考えですか?

答えて

3

html IDの前にテーブル名を付けるのはなぜですか?

{% for row in packages %} # Packages is one of the tables 
<div id="package_{{ row.id }}"> 
{{ row.price }} 
{{ row.date }} 
..etc 
</div> 
<button onClick="toggleDiv("package_{{ row.id }}")">Show Content</button> 


{% for entry in services %} # Services is one of the tables 
<div id="service_{{ entry.id }}"> 
{{ entry.price }} 
{{ entry.date }} 
..etc 
</div> 
<button onClick="toggleDiv("service_{{ entry.id }}")">Show Content</button> 
関連する問題