IRecordModifiedが起動されるはずのレジストリの変更を検出する例を再現しようとしています。plone.registry - IRecordModifiedEventが起動したときに、レジストリの変更をどのように取得するのですか?
https://pypi.python.org/pypi/plone.app.registry#registry-events
は、私は、これは私がやっているものに適応しようとするが、私は置かprint文が発射されていません。コントロールパネルが含まれているモジュールdb_settings.py、で
私のregistry.xmlので<registry>
<records interface="my.product.utils.db_settings.IDBSettings">
</registry>
私events.pyで
from my.product.utils.db_settings import IDBSettings
@adapter(IDBSettings, IRecordModifiedEvent)
def detectDBSettingsChange(settings, event):
print "detectDBSettingsChange"
、私が持っている:plone.appから 。 registry.browser import controlpanel
class IDBSettings(Interface):
db_string = schema.TextLine(title=u"Database String",
description=u"String for database connection",
default=u"Some value"
)
class DBSettingsEditForm(controlpanel.RegistryEditForm):
schema = IDBSettings
label = u"Database settings"
description = u"String setup"
def updateFields(self):
super(DBSettingsEditForm, self).updateFields()
def updateWidgets(self):
super(DBSettingsEditForm, self).updateWidgets()
class DBSettingsControlPanel(controlpanel.ControlPanelFormWrapper):
form = DBSettingsEditForm
私のconfigure.zcml in utils:
<include package="plone.app.registry" />
<browser:page
name="database-settings"
for="Products.CMFPlone.interfaces.IPloneSiteRoot"
class=".db_settings.DBSettingsControlPanel"
permission="cmf.ManagePortal"
/>
私は、コントロールパネルに移動し、値を変更し、保存し、detectDBSettingsChangeはprint文が無視されるように動作していないようです。レジストリの変更をキャプチャするために間違ったイベントに取り組んでいますか?
こんにちは、私は私の遅い応答をお詫び申し上げます。ありがとうございました。これは私が探していたものです。私はそれを追加することを忘れて、これが私の問題を解決しました。ありがとうございました。 –