フィールドはPloneの中でATオブジェクトの値を変更した場合はどうすればわかりますか?
-
21-09-2019 - |
質問
私は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