2013-11-18 9 views
-1

Я пишу макрос для Jinja, который отображает устройства. И у меня есть список таких устройств, как:Проверьте значение в списке кортежей

[('ios', 'something'), 
('android', 'something'), 
('windows', 'something'), 
('blackberry', 'something')] 

Мне нужно отобразить его в определенном порядке, который не гарантируется логикой сервера. К сожалению, некоторые устройства не представлены. Также второй параметр каждого кортежа непредсказуем, поэтому я не могу использовать проверку in. Я не могу изменить его на сервере (не имеют прав).

+1

С пользовательскими тегами шаблона это очень просто. У вас есть разрешения на их создание или изменение? – Danstahr

+0

@Danstahr У меня есть доступ только к каталогу 'templates', поэтому я ничего не имею. –

+0

Можете ли вы уточнить, что у вас на самом деле происходит с сервера? Действительно ли это список кортежей, как показано, что вы хотите как-то заказать? –

ответ

2

Если вы должны сделать что-то в Джиндже, вы можете получить первый элемент каждого кортежа в список кортежей с

devices|map(attribute=0) 

где devices = [('device1', 'string'), ('device2', 'string')] твой список кортежей.

+0

Вы проверили его внутри шаблона Jinja? Он не работает, потому что Jinja не предоставляет понимание списка, как описано в документации. –

+0

Не могли бы вы предоставить код Jinja, который у вас есть? – hunse

+0

Вы получаете список за пределами шаблона Jinja? Потому что тогда вы можете отфильтровать первый элемент, прежде чем передать его в Jinja. – hunse

Смежные вопросы