我怎样才能知道,如果一个领域已经在Plone中的AT对象改变价值?
-
21-09-2019 - |
题
我有一个AT在Plone内容类型。它有一些领域,包括文件场。当用户编辑这种类型的对象,我怎么能告诉我们,如果一个新文件被上传?
对于这个问题,我怎么能告诉我们,如果任何字段已经改变?
我目前使用的用户挂接到IObjectEditedEvent做一些更改的对象后 - 我可以在这里做这些事情。
解决方案
是,IObjectEditedEvent
(IObjectModifiedEvent
的直接子类)是当一个原型内容对象被改变发射。
然而,事件本身不会告诉你,如果一个新文件被上传。它应该是可能的。然而,获得请求(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']
可以有。这似乎是有用的。
不隶属于 StackOverflow