簡體   English   中英

我怎么知道一個字段是否更改了PL對象中的AT對象?

[英]How can I tell if a field has changed value in an AT object in plone?

我在Plone中有一個AT內容類型。 它具有許多字段,包括文件字段。 用戶編輯此類型的對象時,如何確定是否上傳了新文件?

因此,我該如何判斷是否更改了任何字段?

我目前正在使用訂閱服務器來掛接IObjectEditedEvent,以在對象更改后執行一些操作-我可以在這里做這些事情嗎?

是的,當更改Archetypes內容對象時,將發出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 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM