[sisyphus] database objects mapping in zope

Peter V. Saveliev =?iso-8859-1?q?peet_=CE=C1_altlinux=2Eru?=
Ср Май 5 09:38:03 MSD 2004


...

Вопрос знатокам zope.

Есть такая схема:

1) документ аплоадится в zope
2) делается insert документа в базу данных
3) бд распаковывает документ, собирает из него xml
4) при этом создаётся схема экспорта

далее, при запросе документа из бд:

1) используется схема, полученная при импорте
2) разобранный согласно схеме xml пакуется в документ
3) полученный документ отдаётся zope


При этом запрос на документ выглядит так:

http://bala.net/document          == HTML
http://bala.net/document/format   == экспорт в другом формате

(в первом случае используется метод по умолчанию, то есть это равно
http://bala.net/document/html -- просто выборка разных полей view)

При открытии через урл, некоторый пакет имеет возможность сохранять
документ обратно на сервер, используя webdav или http PUT. Однако,
поскольку .../format, .../html и т.п. это просто скрипты, я получаю
такое при открытии http://peet.spb.ru/export/sxw и последующем
сохранении:

Request URL      http://peet.spb.ru/export/sxw/PROPFIND
Exception Type   Not Found
...
REQUEST_METHOD   'PROPFIND'
...

Или, соответственно, на PUT выдаётся:

Request URL      http://peet.spb.ru/export/sxw/PUT
Exception Type   TypeError
Exception Value  compile() expected string without null bytes
...
REQUEST_METHOD   'PUT'
...

Вопросы:

1) можно ли сделать маппер объектов бд в zope? чтобы они были видны
наряду с обычными объектами, вроде методов и скриптов. Скажем, я пишу
свой продукт, при добавлении которого у меня появляется r/o папка с
объектами-записями из view? Такое возможно? Советы?

2) Как я могу переопределить методы вроде PROPFIND и PUT? Если первая
ошибка понятна, то вторая мне непонятна абсолютно. Возможно, этот
некоторый пакет поступает неправильно, отдавая содержимое файла строкой,
но мне нужно плясать от его функциональности. Какой можно применить
workaround?

3) Ну и, наконец, главный вопрос, возможно, с него стоило начинать: а
вообще применим ли zope в данной ситуации?

ЗЫ: вся функциональность по обработке документов сосредоточена в бд
недаром и в zope её вынести никак нельзя. То есть, я не могу их хранить
в ZODB, по мере необходимости применяя тот или иной метод, либо отдавая
как есть.

Спасибо.

-- 

<signature />




Подробная информация о списке рассылки Sisyphus