Выполнение ‹input disabled=disabled/› или другого логического атрибута в TAL

Как сделать атрибуты, которые могут существовать, а могут и не существовать? Примеры: checkbox checked="checked" или disabled="disabled" HTML-атрибуты.

Какое выражение tal:attributes задействовано?


person Mikko Ohtamaa    schedule 11.07.2012    source источник


Ответы (1)


Если атрибуту, указанному в tal:attributes, присвоено значение None, этот атрибут опускается:

<span tal:attributes="title python:len(item['title']) < 10 and item['title'] or None">
   Only a title if shorter than 10 characters.
</span>

То же самое относится к выражению пути к несуществующему объекту:

<span tal:attributes="title item/title" />

Теперь атрибут title будет установлен только в том случае, если у элемента есть ключ заголовка или атрибут. Обратите внимание, что если item/title разрешается в None, атрибут также опускается.

Из спецификации TALES 1.4, раздел attributes:

Если выражение, связанное с назначением атрибута, ничего не дает, то этот атрибут удаляется из элемента оператора.

Где python None интерпретируется как «ничего».

person Martijn Pieters    schedule 11.07.2012