Вот, допустим, сделали
вы когда-то content type в Plone.
И, так уж вышло, не предусмотрели в
нем поведения контейнера. А потом вдруг
понадобилось добавить это поведение в
этот тип.
В статье приводится
хакерский (в хорошем смысле) способ
обновления типа данных в Плоне
A workaround that seems working to
me is to detach the object from the ZODB, switch the class and put
the object back in place, like shown in here:
(pdb) obj = portal['example-1'] (pdb) del portal['example-1'] (pdb) obj <Item at /Plone/example-1> (pdb) from plone.dexterity.content import Container (pdb) obj.__class__ = Container (pdb) portal['example-1'] = obj
This is unorthodox for sure, but for the time being it proved to
be a working solution without side effects.
...
The techniques described in this
post are for sure interesting and powerful, but I would not rely on
such low level tricks for routine operations, i.e. they are useful
for doing migration or management scripts but definitely not suited
for a browser view!
Статья рекомендована
тем разработчикам, кто нацелен на
глубинное понимание происходящего в
Plone/Zope.
original post http://vasnake.blogspot.com/2013/03/hacking-plone.html
original post http://vasnake.blogspot.com/2013/03/hacking-plone.html
Комментариев нет:
Отправить комментарий