Как обновить список значений ключей dicts в jinja2Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как обновить список значений ключей dicts в jinja2

Сообщение Anonymous »

Я установил домен ключей dicts в пустую строку "". Я проверяю, определено ли поле var для ключа dict ssluser, и если да, то мне нужно заполнить данные ключа домена электронной почты, извлеченные из указанного пользовательского значения.

Код: Выделить всё

{%
set sslusers= [
{
'ssluser': SSL_VPN_User01,
'sslusercred': SSL_USER_CRED01,
'index': 0,
'domain': ""
},
{
'ssluser': SSL_VPN_User02,
'sslusercred': SSL_USER_CRED02,
'index': 1,
'domain': ""
},
{
'ssluser': SSL_VPN_User03,
'sslusercred': SSL_USER_CRED03,
'index': 2,
'domain': ""
},
{
'ssluser': SSL_VPN_User04,
'sslusercred': SSL_USER_CRED04,
'index': 3,
'domain': ""
},
{
'ssluser': SSL_VPN_User05,
'sslusercred': SSL_USER_CRED05,
'index': 4,
'domain': ""
},
{
'ssluser': SSL_VPN_User06,
'sslusercred': SSL_USER_CRED06,
'index': 5,
'domain': ""
},
{
'ssluser': SSL_VPN_User07,
'sslusercred': SSL_USER_CRED07,
'index': 6,
'domain': ""
},
{
'ssluser': SSL_VPN_User08,
'sslusercred': SSL_USER_CRED08,
'index': 7,
'domain': ""
},
{
'ssluser': SSL_VPN_User09,
'sslusercred': SSL_USER_CRED09,
'index': 8,
'domain': ""
},
{
'ssluser': SSL_VPN_User10,
'sslusercred': SSL_USER_CRED10,
'index': 9,
'domain': ""
}
]
%}
Блок джинджи, над которым я пытаюсь работать:

Код: Выделить всё

{%- for item in sslusers if item.ssluser is defined %}
{% set domain_value_old = item.domain %}
{% for key, value in item.items() %}
{% if key == 'domain' %}
{% set domain_value_new = item.domain.split('@') | last %}

{% endif %}
{% endfor %}
{% endfor %}
Я застрял на части после {% if key == 'domain' %}, для одного я получаю, что домен_значение_новое не определено, и тогда я не знаю, как чтобы после этого обновить ключ до нового значения, если я вообще смогу его определить. Для контекста я использую это в сценарии cli, который представляет собой шаблон jinja, работающий на сетевых устройствах.
ОБНОВЛЕНИЕ ---
Я был можно обойти неопределенную часть var с помощью этого блока:

Код: Выделить всё

{%- for item in sslusers if item.ssluser is defined %}
{% set domain_value_old = item.domain %}
{% set domain_value_new = item.ssluser.split('@') | last %}
{% for dict_item in item['domain'] %}
{{ domain_value_new }}
{% endfor %}
{% endfor %}
Теперь, когда у меня есть новая строка для ключа домена, назначенная новой переменной, как мне передать обратно список диктовок, чтобы заменить пустую строку на новое значение? Не уверен, что то, что у меня есть, работает, поскольку отладка на моем устройстве ничтожна.

Подробнее здесь: https://stackoverflow.com/questions/788 ... -in-jinja2
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»