2016-02-26 2 views
1

Я использую этот код для простой загрузки ссылки (и появляюсь только если поле «вложение» имеет значение - вложение) - (отлично работает):тал: условие для полого присоединения файлов

<metal:field use-macro="python:here.widget('attachment', mode='view')" /> 

I также хотел бы предоставить метод непосредственного просмотра файла напрямую без загрузки. Я в настоящее время использую этот фрагмент кода (работает отлично):

<a tal:attributes="href string:${context/absolute_url}/attachment">View Attached File</a> 

Я хочу, чтобы добавить условие, что если на самом деле поле «вложение» имеет вложение, а затем отобразить ссылку «Просмотр». Тем не менее, я не могу получить работу с краном:. При тестировании этого я попробовал эти фрагменты кода:

<span tal:condition="here/attachment">ATTACHMENT</span> 

<span tal:condition="context/attachment">ATTACHMENT</span> 

<span tal:condition="template/attachment">ATTACHMENT</span> 

<span tal:condition="exists:template/attachment">ATTACHMENT</span> 

<span tal:condition="string:${context/absolute_url}/attachment">ATTACHMENT</span> 

<span tal:condition="python:here.widget('attachment', mode='view')">ATTACHMENT</span> 

<span tal:condition="exists:python:here.widget('attachment', mode='view')">ATTACHMENT</span> 

<span tal:define="file_exists2 exists:string:${context/absolute_url}/attachment" tal:condition="python:file_exists2">ATTACHMENT</span> 

(выше отображается независимо от того, прикрепление присутствовал или нет)

Есть простое решение, которое позволит Таля: состояние точно распознать, если Поле файла имеет значение и НЕ отображается, если вложение отсутствует и отображается, когда оно есть?

ответ

2

Вы можете проверить размер вложения:

Если это архетип (звонок GETSIZE на AT поле, это также общественное проходимой):

<span tal:condition="context/attachment/getSize">ATTACHMENT</span> 

AFAIK на DX это отличается, так как это NamedBlobFile :

<span tal:condition="context/attachment/get_size">ATTACHMENT</span> 
+0

Thank you. Вот так! – ckrall

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