Properties Zope属性消失

Properties Zope属性消失,properties,zope,Properties,Zope,我基于BasicUser和PropertyManager编写了一个新的用户类。现在我可以添加和更改属性。但是当我重新启动服务器时,它们就不见了 我能找到这种行为的原因吗 类中定义了许多属性(_properties)。这些不会受到影响。重新启动服务器时消失的数据几乎总是由于更改未正确写入数据库而造成的 这通常会发生,因为您正在修改列表或字典,而不是将对象持久化到光盘。解决这个问题有多种方法。对于属性,应该使用对象方法更新和添加属性 它们被称为manage\u addProperty,manage\

我基于BasicUser和PropertyManager编写了一个新的用户类。现在我可以添加和更改属性。但是当我重新启动服务器时,它们就不见了

我能找到这种行为的原因吗


类中定义了许多属性(_properties)。这些不会受到影响。

重新启动服务器时消失的数据几乎总是由于更改未正确写入数据库而造成的

这通常会发生,因为您正在修改列表或字典,而不是将对象持久化到光盘。解决这个问题有多种方法。对于属性,应该使用对象方法更新和添加属性

它们被称为
manage\u addProperty
manage\u editProperties
manage\u delProperties
manage\u changeProperties


您可以在Zope2书的底部找到使用示例。

缺少的基类是“持久的”。我假设它一定是PropertyManager的基类,但事实并非如此。

您应该添加代码,这将有助于缩小问题的范围。使用的代码没有什么特别之处:我使用manage\u addProperty添加了属性,并使用manage\u changeProperties对其进行了更改。只要我不重新启动,它就可以正常工作。显示代码的更多原因,包括类。另外:“类中定义了许多属性(_属性)。这些属性不受影响。”-但是。。。这些是属性。因此,我不确定您在这里的意思。只有在创建objct后添加的属性(使用manage_addProperty)受到影响。我使用manage_addProperty和manage_changeProperties。只要服务器运行,它就可以正常工作。我真傻。我必须向基类添加持久性。BasicUser没有,但用户(来自AccesControl)有。谢谢Lennart,你的回答为我指明了正确的方向。