2017-12-08 32 views
0

PythonスクリプトからJinjaに2つの変数(単純なものを含めて3つ)を渡しています。ネストされたJinja2 forループ

特定の実行では、リンクを含むリストを生成したいと思います。私は「パッケージのリストのために、その後、いくつかのテーブルタグをタグを追加したい各「packageURLs」の

<html> 
<body> 
    <h1>{{ title }}</h1> 
    <table> 

     {% if packageURLs is defined %} 
      {% for x in packageURLs: %} 
       <a href="{{ x }}"> 
      {% endfor %} 


      {% for i in packagesList: %} 
       <tr><td>{{ i }}</td></tr> 

      {% endfor %} 


     {" else "} 


      {% for i in packagesList: %} 
       <tr><td>{{ i }}</td></tr> 

      {% endfor %} 
     {% endif %} 

     </a> 
    </table> 
</body> 

。何が起きているのかは、HTMLを生成していますが、個々のループを最初に完了させることです。だから、私は半分のページがリンクでいっぱいになり、別のページはテーブルの行で終わる。どのようにすれば最初に両方を反復することができますか?

答えて

0

私は解決策が見つかりました:私はチェックとして怠惰のうち、最後の変数を保持

f = t.render(title=dataType,packagesList=zip(Info,packageURLs),packageURLs=packageURLs) 

:Pythonスクリプトでzipファイルを()を使用して移入され

<html> 
<body> 
    <h1>{{ title }}</h1> 
    <table> 

     {% if packageURLs is defined %} 
      {% for i,x in packagesList %} 
       <a href="{{ x }}"> 
        <tr><td>{{ i }}</td></tr> 
       </a> 
      {% endfor %} 

     {" else "} 

      {% for i in packagesList: %} 
       <tr><td>{{ i }}</td></tr> 

      {% endfor %} 
     {% endif %} 


    </table> 
</body> 

を私はまだそれらの異なるチャンクだけを実行したいからです。

関連する問題