如果对象/图像可用/上传,请检查Zope

时间:2011-07-14 09:09:57

标签: python zope

我正在使用zope2.10与python 我想检查图像文件是否上传

我在我自己的产品中,我有一个像字符串一样的路径:

/媒体/新闻/ 2010 /图像

我想检查它是否是image.gif或image.jpg

但我不知道如何检查 所以它只是一个文件检查器。

该文件是否存在于zope yes / no ready

//编辑我不是一个dtml文件

2 个答案:

答案 0 :(得分:2)

在普通文件系统Python代码中,您将使用路径遍历到容器,然后检查容器中的两个ID。 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')

答案 1 :(得分:0)

如果我没记错,可以使用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脚本中使用它。