Как реализовать постоянный список или постоянное отображение в ZODB - PullRequest
2 голосов
/ 26 апреля 2010

Отношения один-ко-многим не работают в ZODB, поскольку список является изменяемым. Они говорят, что решение - Постоянное сопоставление или Постоянный список или BTree. Может кто-нибудь сказать, пожалуйста, как это точно делается

1 Ответ

5 голосов
/ 21 октября 2010

Я не уверен, что понимаю ваш вопрос.

PersistentMapping ведет себя так же, как словарь, но является постоянным. PersistentList - это просто список, который является постоянным.

BTree ведет себя также как словарь, но он оптимизирован для огромного количества объектов. Вы не должны использовать PersistentMapping или PersistentList, если вам приходится иметь дело со многими объектами.

Для отношений ZODB вы можете использовать ссылки на объекты , как это обычно делается в Python.

ZODB даже поддерживает слабые ссылки, если они вам нужны.

Существуют и другие специализированные пакеты, такие как z3c.relationfield, для работы с отношениями в ZODB, например, если вам нужен поиск по отношению, но у меня никогда не было необходимости их использовать.

...