Как проверить элемент списка внутри dict, используя jinja2? - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть список, который выглядит как ниже, и я хочу получить доступ / проверить значение индекса индекса в dict в моем шаблоне, используя jinja2:

Dict : {'110.34.214.180': [['SR12'], 'Unavailable', '0'], 
        '110.34.214.110': [['SR9'], 'Unavailable', '0'], 
        '105.34.214.184': [['SR11'], 'Available', '0'], 
        '110.34.214.100': [['SR2'], 'Unavailable', '0'], 
        '110.34.214.124': [['SR7'], 'Unavailable', '0'], 
        '110.138.249.238': [['SR5'], 'Unavailable', '0']
       }

Я хочу проверить что-то вродеэто, если доступно значение [1], то выводится только значение [0] списка:

{% for stations, value in AliasDict.items %}
   {% if value[1] == 'Unavailable' %}
       <a href="#"> {{forloop.counter}}. {{stations}} : {{value[0]}}</a>
   {% endif %}
{% endfor %} 

Как мне это сделать?

def render_home_elements(self, request):
    return render(request, 'home/home.html',{'AliasDict':self.teDict})

1 Ответ

0 голосов
/ 26 февраля 2019

Вы довольно близко.

Попробуйте:

import jinja2

AliasDict = {'110.34.214.180': [['SR12'], 'Unavailable', '0'], 
        '110.34.214.110': [['SR9'], 'Unavailable', '0'], 
        '105.34.214.184': [['SR11'], 'Available', '0'], 
        '110.34.214.100': [['SR2'], 'Unavailable', '0'], 
        '110.34.214.124': [['SR7'], 'Unavailable', '0'], 
        '110.138.249.238': [['SR5'], 'Unavailable', '0']
       }

s = """{% for stations, value in AliasDict.items() %}
   {% if value[1] == 'Unavailable' %}
       <a href="#"> {{loop.index}}. {{stations}} : {{value[0]}}</a>
   {% endif %}
{% endfor %} """

template = jinja2.Environment().from_string(s)
data = template.render(AliasDict=AliasDict)
print(data)
...