本文を読み飛ばす

ZopeでProductを作るには? これ古いかな?

Productはあまり作らず,
いつもPythonScriptでやってます.

なんか簡単な方法ないのかな, と思って考えてたら
下のようなものが出てきました.

これは最近でも通用するのかな...

だいたいソース見たらわかるのはいいのですが,
ドキュメントも欲しいかもしれませんよね. > Zope

[zope-users:06125] Re: プロダクト作成での質問です
2006 12 10 () 21:21:09 JST

* 前の記事 [zope-users:06123] Re: プロダクト作成での質問です
* 次の記事 [zope-users:06126] Re: プロダクト作成での質問です
* 記事の並び順: [ 日付 ] [ スレッド ] [ 件名 ] [ 著者 ]

直接の解答になっていなくてスイマセン。取り急ぎ,ヒントとなりそうなことに
ついて断片的に書いてみます。
また,この件については最後のお返事となると思います。

On Sat, 9 Dec 2006 18:11:49 +0900 (JST), wrote:
> このProductは自環境(Zope2.10.1)で、動作しました。
> これを参考に進めようとしています。
> 実際使用してみると、Addするときに、最初のパラメータ設定
> のdtmlでpathを指定し、fileをメインのpythonに渡しています
> 
> しかし、こちらの意図としてはdtmlでの設定をなくしたいため
> 、所定のzexpを指定して使用しようと試みました。しかし、python
> で所定のzexpをfile(dtmlで受け取った状態と同じ)にする方
> 法、がわからず、悩んでいます。

ふむふむ。Webブラウザ上のフォームと,実際に動くPythonのコードの対応につ
いては理解されているようですね。すばらしい:-)

キモとなるのはZope APIに登録されているmanage_importObject()というメソッ
ドの呼び方です。Zope 2.10の,該当するソースコードは以下のURLで見ることが
できます。

http://svn.zope.org/Zope/branches/2.10/lib/python/OFS/ObjectManager.py?rev=69913&view=markup

このメソッドは,フォルダのオブジェクトに対して呼び出すことができます。
引数として渡すのは,importしようとするパス(path)です。パスは文字列です。
ソースコードを読む限り,ZopeのインスタンスホームまたはZopeホーム(Zopeを
インストールしたディレクトリ)から下の,importしたいファイルの相対パスを
メソッドに渡すようです。
吉井さんのプロダクトで,このパスに相当する文字列をmanage_importObject()
メソッドに引数として渡せばいいはずです。
ただし,プロダクトをLinuxとWindowsなどマルチプラットフォーム対応にしたい
場合には,パス文字列の作り方にちょっと注意をする必要があります。Pythonの
os.pathモジュールなどを調べてみてください。

取り急ぎ。

コメント

Comments powered by Disqus
宣伝: