我有一个AT在Plone内容类型。它有一些领域,包括文件场。当用户编辑这种类型的对象,我怎么能告诉我们,如果一个新文件被上传?

对于这个问题,我怎么能告诉我们,如果任何字段已经改变?

我目前使用的用户挂接到IObjectEditedEvent做一些更改的对象后 - 我可以在这里做这些事情。

有帮助吗?

解决方案

是,IObjectEditedEventIObjectModifiedEvent的直接子类)是当一个原型内容对象被改变发射。

然而,事件本身不会告诉你,如果一个新文件被上传。它应该是可能的。然而,获得请求(context.REQUEST应该给你通过收购当前请求,例如),看看是否有一个文件对象有匹配的领域。如果是的话,用户上传新文件该字段和FileField将已被更新。

其他提示

下面是我绑在IObjectEditedEvent:

使用从子类ATBlob创建的默认的形式, 实施(IATBlobFile,IATFile,IFileContent)

def editObjectEvent(context, event):
    status = context.REQUEST.form.get('file_delete')
    if status in ("nochange", NONE):
        print "Don't do anything, no change to file."
    else:
        print "Do something, the file has changed"

我想知道还有什么其他价值form['file_delete']可以有。这似乎是有用的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top