Проверьте в Zope, если Объект / изображение доступно / загружено - PullRequest
0 голосов
/ 14 июля 2011

я использую zope2.10 с python, и я хотел бы проверить, загружен ли файл изображения

Я в своем собственном продукте и у меня есть путь в виде строки, такой как:

/Media / News / 2010 / image

и я хочу проверить, является ли это image.gif или image.jpg

Но я не знаю, как это проверить, так что это будет просто файлшашка.

Существует ли файл в zope да / нет готов

// РЕДАКТИРОВАТЬ Я не файл dtml

Ответы [ 2 ]

2 голосов
/ 14 июля 2011

В обычном коде Python для файловой системы вы должны использовать путь для перехода к контейнеру, а затем проверять два идентификатора в контейнере. E.g.:

container = context.unrestrictedTraverse('/media/news/2010')
item_ids = list(container.objectIds())
for image_id in ('image.jpg', 'image.gif', 'image.png'):
    if image_id in item_ids:
        return container._getOb(image_id).absolute_url()
raise ValueError('No image found')
0 голосов
/ 14 июля 2011

Если я правильно помню, вы можете использовать метод has_key ().

Теперь, в зависимости от того, используете ли вы dtml, python или что-то еще, вы можете сделать что-то вроде

<dtml-with Media>
  <dtml-with News>
    <dtml-with 2010>
      <dtml-if "getattr(_['2010'], 'Image').has_key('Image.gif')">
        ...
      </dtml-else>
        ...
      </dtml-if>
    </dtml-with>
  </dtml-with>
</dtml-with>

Я не тестировал код, но я уверен, что метод has_key () - это ваше решение.Вы можете использовать его в dtml или в скриптах на python.

...