синтаксис вложенного словаря

Работая с Pyramid, мой код выглядит так:

class PageData:
    @staticmethod
    def create_data():
        return [
            {   
                'key_1A': 'info1A',
                'key_2A': 'info2A',
                'nested_list_A': [
                    {'nested_key1A': 'nested_val1A'},
                    {'nested_key2A': 'nested_val2A'},
                ],
            },
            {   
                'key_1A': 'info1B',
                'key_2A': 'info2B',
                'nested_list_B': [
                    {'nested_key1B': 'nested_val1B'},
                    {'nested_key2A': 'nested_val2A'},
                ],
            },
            ]

И мой код html-страницы выглядит так:

<span tal:condition="nested_key1A">     Open     </span>
<span tal:condition="not nested_key1A"> Closed   </span>

Каков правильный синтаксис для ссылки на nested_key? для tal:условия?


person Spiteless    schedule 26.07.2017    source источник


Ответы (1)


Пытаясь понять это, я нашел свой ответ...

tal:repeat Синтаксис: tal:repeat="имя выражения"

Описание: оценивает «выражение» и, если это последовательность, повторяет этот тег и все дочерние элементы по одному разу для каждого элемента последовательности. "Имя" будет установлено равным значению элемента в текущей итерации, а также является именем повторяющейся переменной. Переменная повторения доступна по пути TAL: repeat/name и имеет следующие свойства:

https://www.owlfish.com/software/simpleTAL/tal-guide.html

<div tal:repeat="a nest_list_A">
<div tal:repeat="b a.nest_list_A">
<span tal:condition="b.nested_key1A">

a становится назначением для nest_list_A, например, b становится назначением для a.nested_list_A, который затем получает доступ к их ключу

если есть значение для ключа, то tal:condition будет продолжаться как обычно, в противном случае оно будет пропущено при рендеринге.

person Spiteless    schedule 26.07.2017