1) Не родитель, а контейнер.
2) Как было мне подсказано в определенных типах есть специальное поле
ссылка на контейнер. Соответственно никто не мешает перехватыват
события у контейнера на изменение и держать список контейнеров в
которых содержится объект.
3) Вероятно такого нет в широком использовании потому, что не очень
надо было. Скорее всего при объяснении зачем это вам появится ответ
как сделать изящнее. Может с помощью словарей (я что-то смутное такое
думаю про это).
15 сентября 2010 г. 13:01 пользователь
<zope3-ru...@googlegroups.com> написал:
> Сводка по сегодняшним темам
>
> Группа: http://groups.google.com/group/zope3-ru/topics
>
> поиск всех родителей [2 Обновления]
>
> Тема: поиск всех родителей
>
> Anatoly Bubenkov <bube...@gmail.com> Sep 14 01:26PM +0300 ^
>
> On Tue, 2010-09-14 at 12:54 +0400, Dmitry Vasiliev wrote:
>> > Я создаю объект и сохраняю его в нескольких контейнерах.
>> > Возникает вопрос, как найти всех родителей данного объекта?
>
>> Пока советы не зашли слишком далеко... ;-)
> -1, чтоб далеко не ходить
>
> --
> Anatoly Bubenkov
> +380(66)6358527
> Zojax inc (http://zojax.com/)
>
>
>
> Vitaly <vit...@mail.ru> Sep 14 03:39AM -0700 ^
>
>
>> Я создаю объект и сохраняю его в нескольких контейнерах.
>> Возникает вопрос, как найти всех родителей данного объекта?
>
>> Заранее спасибо.
>
> решил эту задачу индексами, жаль что нет механизма позволяющего
> просмотреть всех родителей
>
>
>
> --
> Russian Zope3 group http://zope3.ru/
> Для отправки сообщений zope...@googlegroups.com
> Отписаться zope3-ru-u...@googlegroups.com
> Архив http://groups.google.com/group/zope3-ru
--
С уважением, Дмитрий
On 15 сен, 16:34, Dmitry Shamov <demm...@gmail.com> wrote:
> На самом деле я тоже зедавал такой вопрос тут. Только:
>
> 1) Не родитель, а контейнер.
не важно как называть, но если прикопаться :) то у объекта есть
атрибут __parent__ в котором храниться ссылка на _контейнер_, что
переводится как родитель
> 3) Вероятно такого нет в широком использовании потому, что не очень
> надо было. Скорее всего при объяснении зачем это вам появится ответ
> как сделать изящнее. Может с помощью словарей (я что-то смутное такое
> думаю про это).
>
поигравшись с объектом размещенном во множестве контейнеров прихожу к
мнению что это не очень хорошо, лучше хранить ссылки на объекты чем
сами объекты.
--
Russian Zope3 group http://zope3.ru/
Для отправки сообщений zope...@googlegroups.com
Отписаться zope3-ru-u...@googlegroups.com
Архив http://groups.google.com/group/zope3-ru
все кроме инта и строки.
не в этом дело.
если человек размещает объект в нескольких контейнерах, это значит,
что он последовательно меняет атрибут __parent__ этого объекта с
одного контейнера на другой. при этом в каждом контейнере остается
ссылка на этот объект.
если потом удалить это объект из контейнера, ему в __parent__
запишется None, а по базе будет расбросана куча ссылок на объект у
которого нет ни "контейнера", ни "родителя".
поэтому нехорошо.
правильней размещать объект в каком-то одном контейнере. если хочется
иметь ссылки на него из других контейнеров (или других объектов,
вообще), нужно просто хранить его в каком-нить атрибуте этого
контейнера. но __parent__ лучше не трогать.
On Sep 17, 1:04 pm, Сергей Панов <spanoval...@gmail.com> wrote:
> 16 сентября 2010 г. 10:10 пользователь Vitaly <vita...@mail.ru> написал:
>
>
>
>
>
> > On 15 сен, 16:34, Dmitry Shamov <demm...@gmail.com> wrote:
> > > На самом деле я тоже зедавал такой вопрос тут. Только:
>
> > > 1) Не родитель, а контейнер.
>
> > не важно как называть, но если прикопаться :) то у объекта есть
> > атрибут __parent__ в котором храниться ссылка на _контейнер_, что
> > переводится как родитель
>
> > > 3) Вероятно такого нет в широком использовании потому, что не очень
> > > надо было. Скорее всего при объяснении зачем это вам появится ответ
> > > как сделать изящнее. Может с помощью словарей (я что-то смутное такое
> > > думаю про это).
>
> > поигравшись с объектом размещенном во множестве контейнеров прихожу к
> > мнению что это не очень хорошо, лучше хранить ссылки на объекты чем
> > сами объекты.
>
> > --
> > Russian Zope3 grouphttp://zope3.ru/
> > Для отправки сообщений zope...@googlegroups.com
> > Отписаться zope3-ru-u...@googlegroups.com
> > Архивhttp://groups.google.com/group/zope3-ru
--
Russian Zope3 group http://zope3.ru/
Для отправки сообщений zope...@googlegroups.com
Отписаться zope3-ru-u...@googlegroups.com
Архив http://groups.google.com/group/zope3-ru
On Sep 17, 1:57 pm, Ilshad Khabibullin <astoon....@gmail.com> wrote:
> Логично было бы оформить этот паттерн в виде аннотации, чтобы приведение к
> интерфейсу IMultiParents(context) дергал аннотацию, хранящую ссылки на
> множественных родителей.
>
> А вообще да, у семи parent'ов контентный объект без присмотра.
>
> 17 сентября 2010 г. 16:33 пользователь tretiy3 <tret...@gmail.com> написал:
> --
> Ilshad R. Khabibullinhttp://astoon.zwiki.org+7 922 600 56 06begin_of_the_skype_highlighting +7 922 600 56 06 end_of_the_skype_highlighting
ага. и родителей тоже нужно метить каким-нить образом.
и подписывать их обоих на каждый чих, чтобы связь держали, потому как
если удалить такого сынка, из его настоящего контейнера
скрежет зубовный по всей системе будет стоять.
получится, в итоге, свой маленький фреймворк.
--
Russian Zope3 group http://zope3.ru/
On Sep 17, 2:54 pm, Ilshad Khabibullin <astoon....@gmail.com> wrote:
> 17 сентября 2010 г. 17:19 пользователь tretiy3 <tret...@gmail.com> написал:
>
> > ага. и родителей тоже нужно метить каким-нить образом.
> > и подписывать их обоих на каждый чих, чтобы связь держали, потому как
> > если удалить такого сынка, из его настоящего контейнера
> > скрежет зубовный по всей системе будет стоять.
> > получится, в итоге, свой маленький фреймворк.
>
> Все эти сложности не представляют никакой сложности в zope3 так как делаются
> через подписчики, и существуют общепринятые события.
>
> Вообще, я делал подобное, и это не вызвало непредвиденных сложностей. Это ж
> Zope3 - что хочешь то и делай. Кончено, я не складывал объект в несколько
> разных контейнеров (т.к. в этом случае, как наиболее точно выразился
> Анатолий, просто теряются преимущества от использования протокола ILocation,
> который предоставляет конвенциональное поведение "из коробки").
>
> Но так, что к одному и тому же объекту приходишь из разных контейнеров - тут
> проблем быть не должно (я решал специфическим траверсом на псево-родителях).
> Связь между объектами, притом абстрагированную от способа ее реализации,
> делал через аннотации, лучше c использованием annotation factory из
> нативного пакета, что позволяет оформить в виде отдельного интерфейса -
> маркера специфичную и нужную политику взаимотношения хранимых объектов.
>
> > > Ilshad R. Khabibullinhttp://astoon.zwiki.org+7922 600 56
--
Russian Zope3 group http://zope3.ru/