Форум сайта python.su
misha111Нет, при таком подходе (связка по intid) никаких подводных камней не будет, успешно так связывал объекты 2 года и никаких проблем не возникало. Преимущество в том, что вы будете оперировать прозрачными объектами (без вложенностей).
по id, прочитал. Он мне показал сложноватым, и ещё неизвестно какие подводные камни могут появится.
...
gallery = Tuple(value_type = ImageField) # Тут ImageField - кастомное поле, которое наследовалось от Bytes
..
class IObjectSchema:
attr1 = Type1()
...
attrN = TypeN()
class IObjectContainer(IOrderedContainer):
containers('path.Interface11', 'path.Interface12', ...)
contains('path.Interface1', 'path.Interface2', ...)
class IObject(IObjectSchema, IObjectContainer):
pass
Офлайн
Лишь подтвержу слова regall: надо использовать intid. При всяческих переиндексациях изменяется состояние лишь индексов. Идентификаторы же объектов привязываются к объектам жестко и не меняются. Так что подводных камней тут нет.
Работа с идентификаторами через индексы - достаточно общий паттерн в zope-разработке.
Офлайн