2016-05-17 4 views
0

は、私はすべてのendpoint用の辞書が含まれているリストendpointsを、持っています。各辞書には、リストであるキーtagsがあります。 tags内のすべての項目は、キーvalueは、タグのラベルを与える辞書そのものです。 endpointにも同様のタグが付いている場合があります。神社一覧問題

endpointsオブジェクトのサンプル抽象的な表現が可能:私が欲しいもの

[ {"tags":[{"value":"car"},{"value":"place"}]} , {"tags":[{"value":"van"},{"value":"place"}]} ] 

はdivの中で、単純な表示のユニークなタグにあります。それは、シンプルな表示されているすべてのタグのリストを維持し、タグを取得すると、それがリストに既にあるかどうかをチェックし、それを表示し、リストに追加されていない場合です。奇妙なことに、それは機能していません。

コードは次のとおりです。それが動作しない

{% set tagValues = [] %} 
{% for endpoint in endpoints %} 
     {% for tag in endpoint["tags"]%} 
       {% set tagValue = tag["tag"]["value"] %} 
       {% if tagValue not in tagValues %} 
         {% set tagValues = tagValues + [tagValue] %} 
         <span >{{ tagValue }}</span></a> 
       {% endif %} 
     {% endfor %} 
{% endfor %} 

、例えば、上記のenpointsのリストについては、私は次の出力を取得しています:

car place van place 

は、コードに問題があります?

答えて

1

に渡す前に、前処理に通常のPythonでのごendpointsだろう。例えば

distinctTags = list(set([tag for endpoint in endpoints for tag in endpoint])) 

テンプレート

{% for tag in distinctTags %} 
    <span >{{ tagValue }}</span></a> 
{% endfor %} 

これは明確なタグコードは再利用可能であることと、コードは以下の手続きであるという利点を持っているにそれを渡します。

1

私の神社の知識は限られているが、出力にtagValuesを追加することによって、外側のループの各反復の後にリセットだと思われます。私はそれがスコープと関係していると思いますが、わかりません。

私の推薦は、私はあなたのビューでのタグの明確なリストを作成することはお勧め神社

+0

はい、それはそれは、タグ値をリセットして何が起こっています – Noor