|
質問箱
解からないことがあったら聞いてください。多分僕も解からないので一緒に考えましょう(爆
-
48
owa
2003/08/05 22:30
id: mJs8kxp1Zus
prob: 0.0%
-
-
もう少し調べて見ました。
1. 書式(A)
context.manage_addDTMLDocument('foo', 'FOO', 'ThisIsFoo')
context.manage_addFolder('foo', 'FOO')
でドキュメントやらフォルダやら生成されます。
しかし、
context.manage_addZSQLMethod('foo', 'FOO', '接続id', '', 'sql文')
は AttributeError になります。
2. 書式(B)
context.manage_addProduct['ZSQLMethods'].manage_addZSQLMethod(...)
context.manage_addProduct['OFSP'].manage_addFolder(...)
は通ります。
この結果からの推測
------------------
書式(A)は古い書式であり、Product/OFSP 下にあるオブジェクトのみ可能
書式(B)は新しい書式であり、一般プロダクトではこの書式を使う。
OFSP 配下のプロダクト以外はグローバルに参照できないので、
contex.manage_addZSQLMethod(...) 等は AttributeError になる。
もちろんメソッドなので無理矢理呼び出すことはできる。
上記はあくまで推測なので、裏付けしようと思ったけど
http://zope.org/Documentation/Books/ZopeBook/2_6Edition/Appe...
しか探せなかった。英文なので、やっぱりソース読む方が早いかも。
-
47
kiyo
2003/08/05 00:13
id: M4qDt4tUHP2
prob: 0.0%
-
-
>>46
多分田原さんだから、どこかソースから見つけたのかと思ったのですが、
manage_addPythonScript も manage_addPruduct['PythonScripts'].manage_addPythonScript と書かなければダメでした。
owa さんでもソースから読み取れないって事は、
今の段階では、context.manage_addXXXX がダメなら、manage_addProduct... を試す。しかないのかなあ〜
>> addMethodORG は、CreateFolder/addMethod のコピーで、誤って削除した時の予備です。CreateFolder/addMethod が本体です。
今アップしたので、前の DbMove_02 はバグありました。先ほどお知らせした「ふうー」の後でインポートしたら良いですが、、、
家の BBS(PostgreSQL) -> Firebird へコピーしたらラクチンでした。
一回作って「CreateFolder」を全てコピーしたのでいつでも最新 Firebird 版が作れる環境ができました。ちなみに updateSQL も正常でした。
>>Zopeガイド・・・
Zope技術入門にも同じ説明がありました。が、も少し丁寧な説明本がでないかなあ。私用に(爆
Zope Bible まだ読み終わってないけど API はなかったような
-
46
owa
2003/08/04 23:02
id: mJs8kxp1Zus
prob: 0.0%
-
-
またボケを覚悟で、
memo の投稿は読みました
http://www.freeml.com/message/zope-memo@freeml.com/0000437
また DbMove_02.zexp インポートして見ました
1. 安田さんの Zopeガイド p285 見ると
manage_addZSQLMethod(id, title, connection_id, ...)
connection_id の引数は現在のフォルダか上位のフォルダのデータベース...
と説明がありますが、addMethodORG スクリプトはそう配置されていません。
でも多分 memo に投稿した時点ではそうなっていたのだと思います。
なぜ動作しなかったのかは不明
2. manage_addZSQLMethod メソッドの場所は
/usr/share/zope*/lib/python/Products/ZSQLMethods/SQL.py
def manage_addZSQLMethod(self, id, title,
connection_id, arguments, template, REQUEST=None, submit=None):
...
だと思います。確かに第一引数は self になっています。
context.manage_addZSQLMethod(id, ...)
でなぜうまくいかなかったかやっぱり不明
3. また安田さんの Zopeガイド p261 から
「ObjectManager にオブジェクトを作成するためには、次のように
manage_addProduct を使う。
self.manage_addProduct['OFSP'].manage_addFolder(id, title)」
田原さんの方法はこれの応用だと思うのですが...ここで今日は限界
-
45
red baron
2003/08/04 18:56
id: caMd/psUOOY
prob: 0.1%
-
-
遅レス申し訳ないです!
>ブート直後と手動で起動した場合の違いはありませんか?
確認しましたが、違いはありませんでした。
>それとも GUI で起動してる?
./startで起動しています。
結局再インストールしたら、問題が解決しました。
なんだったんだろう・・??
とりあえずありがとうございました。
私もこのBBSを参考にさせてもらいながら、
いっしょに考えることにします。
-
44
kiyo
2003/08/04 18:30
id: M4qDt4tUHP2
prob: 0.1%
-
-
manage_addZSQLMethod の使い方を質問した時田原さんに教えてもらった件ですが、
ZSQLMethods のソース見ても解らなかった。
どこを見たら manage_addProduct['ZSQLMethods'].manage_addZSQLMethod が解るのでしょう?
-
43
kom
2003/08/03 23:38
id: e.D1qOrGnXM
prob: 0.1%
-
-
みなさん、ありがとうございます。
LocalFSのプロパティのcatalogをONしてみました。
そしたら無事objectValues()使えました。
ソース見れば分かりますね。調べられることはできるだけ
調べてから質問しなければ。
-
42
owa
2003/08/03 22:27
id: mJs8kxp1Zus
prob: 0.4%
-
-
>>40 一行だけ書くといかにも、できる人
# 昔、かっこつけたつもりで、一行投稿したことあります;;
多分この場所では、ボード一覧のテーマに関する質問が多いと思います。
これらは元々、自分がこれからやりたいことなので、今は正解が見えて無い
ことばかりと言うことになります。
問題を解決する過程で、私が得をしようという魂胆が見え見えですね。
というわけで質問は大歓迎なわけです。自分勝手ですがよろしく m(.".)m
# 踊るアホウに見るアホウ、踊らにゃ損 (私はアホウです、ごめん)
-
41
owa
2003/08/03 21:42
id: mJs8kxp1Zus
prob: 7.0%
-
-
>>36 明日やってみます
まず objectValues() は LocalFS のプロパティで catalog をチェック
すればできるらしい。(試していません)
次に fileIds() 以外にも fileValues, fileItems などがあります。
たとえばオブジェクト情報を得るには
<dtml-in "Images.fileItems()">
<dtml-var id>)
<dtml-var get_size>
<dtml-var bobobase_modification_time>
</dtml-in>
などとします
そして、オブジェクトそのものを得るには
<dtml-in "Images.fileItems()">
<dtml-let ob=getObject>
<dtml-var id>, <dtml-var "ob.meta_type">
</dtml-let>
</dtml-in>
ネタ元はすべて LocalFS/LocalFS.py でした^^
-
40
kiyo
2003/08/03 09:42
id: M4qDt4tUHP2
prob: 7.8%
-
-
>>39 もっと簡単になりました。
すみません。このように、簡潔に書かないと解りにくい!!
自分に欠けてる所発見^^;;
>>objectValues() の代わりに fileIds() ってこと?
もし質問なら、そうです。
でも「fileIds()を使いましょう」と一行だけ書くといかにも、できる人の回答みたいで抵抗がありますです。
-
39
owa
2003/08/03 01:29
id: mJs8kxp1Zus
prob: 9.7%
-
-
>>38
もっと簡単になりました。
---
<dtml-in "Images.fileIds()">
<dtml-var sequence-item>
</dtml-in>
---
objectValues() の代わりに fileIds() ってこと?
|
|