2013-10-02 5 views
1

Я написал новый пользовательский класс на основе BasicUser и PropertyManager. Теперь я могу добавлять и изменять свойства. Но когда я перезапускаю сервер, они исчезают.Свойства Zope исчезают

Любые идеи, где я мог бы найти причину такого поведения?

Threre - это ряд свойств, определенных в классе (_properties). Это не затрагивает.

+0

Вы действительно должны добавить код, это поможет сузить проблему. –

+0

В коде нет ничего особенного: я добавил свойство using manage_addProperty и изменил его с помощью manage_changeProperties. Это работает отлично, пока я не перезагружаюсь. – Rastaf

+0

Еще больше причин показывать код, включая класс. –

ответ

1

Недопустимый базовый класс был «Persistent». Я предположил, что это должен быть базовый класс PropertyManager, но это не так.

1

Данные, которые исчезают при перезапуске сервера, почти всегда являются тем, что является следствием того, что изменения не будут правильно записаны в базу данных.

Это, как правило, происходит потому, что вы изменяете список или словарь и не сохраняете объект на диске. Существуют различные способы обойти эту проблему. В случае свойств вы должны использовать методы объектов для обновления и добавления свойств.

Это называется manage_addProperty, manage_editProperties, manage_delProperties и manage_changeProperties.

Вы можете найти примеры использования в нижней части this page в книге Zope2.

+0

Я использую manage_addProperty и manage_changeProperties. Он работает нормально, пока сервер работает. – Rastaf

+0

Глупый меня. Мне пришлось добавить Persistent к базовым классам. BasicUser не имеет этого, но User (от AccesControl). Благодаря Леннарту, ты указал мне в правильном направлении с ответом. – Rastaf

 Смежные вопросы

  • Нет связанных вопросов^_^