フィールドはPloneの中でATオブジェクトの値を変更した場合はどうすればわかりますか?

StackOverflow https://stackoverflow.com/questions/1968343

  •  21-09-2019
  •  | 
  •  

質問

私は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