投稿練習(73, 0)
 メ-ル希望(3, 0)
 障害情報(18, 0)
 雑談(871, 0)
 業務報告(284, 0)
 VineseedにZope(623, 0)
 Zope27使おう(6, 0)
 ImgBBS(14, 0)
 会員専用(0, 0)
 ぼやき場所(27, 0)
 メモ(32, 0)
 eclipse(6, 0)
  

メモ

zope-memo の有益な情報やメモ&覚書

投稿画面の表示を 

検索文字 

お名前  EMail 
 左に表示されている数値を入力してください 

0032 0027 0017 0007

7 kiyo 2003年 8月11日 13時38分 Id=kiyo

LocalFS が、context.manage_addProduct['LocalFS'].manage_addLocalFS(***)でエラーがでる。
 
対策:
LocalFS フォルダのLocalFS.py を開き以下のように修正する。
 
1351: ob = LocalFS(id, title, basepath, username, password)
1352: self._setObject(id, ob)
1353: if REQUEST is not None:(これを加える)
1354:   return self.manage_main(self, REQUEST)
 
理由:Zope Bible P195 で発見。
context.manage_addProduct['LocalFS'].manage_addLocalFS(***)
で呼び出すと、REQUEST に None が渡される為だろう
別のプロダクトでもあるかも知れない(かな?)




6 kiyo 2003年 8月 7日 18時29分 Id=kiyo

ついでに覚書で。。。
あるフォルダの中にある PythonScript をすべて実行するには、
---
<dtml-in objectValues>
  <dtml-if "meta_type=='Script (Python)'">
    <dtml-call "_['sequence-item']">
  </dtml-if>
</dtml-in>
---
試していないけど、多分これでもOKだろう。
---
<dtml-in "objectValues('Script (Python)')">
 
  <dtml-call "_['sequence-item']">
 
</dtml-in>
---




5 kiyo 2003年 8月 7日 17時39分 Id=kiyo

今日も manage_XXX のネタ
ZSQLMethod のプロパティに Advances -> Maximum rows to retrieve(実体は max_rows だった) は
context.manage_advanced(max_rows,max_cache,cache_time,class_name,class_file)
で設定可能だった。
 
ZOPE_HOME/lib/python/Shared/DC/ZRDB/DA.py で見つけた。
 
# ZSQLMethod プロパティ Advances -> Maximum rows to retrieve の事も忘れない内に書いておこう
# Firebird, PostgreSQL は max_rows の値をゼロにしたら一行も読み込みません。なので、読み出したい最大レコード数をそのまま記入する
# MySQL は max_rows の値をゼロにして、limit 文で対応する。
limit 文は wiki.zope.jp のどこだったか忘れたが、MySQLは設定できないとあったので、ひょっとして有益な情報かも知れない。



4 kiyo 2003年 8月 6日 12時44分 Id=kiyo

>>3
なる程、簡単だ!
request はまだ別の使い方がありそうな気がする。
 
# でもあんまり調子にのると、穴(セキュリティ)あけるかも知れない。



3 owa 2003年 8月 6日 10時13分 Id=owa

>>2
まねですが、こんなんでもできました。
---
request = container.REQUEST
request.form['file'] = """
print 'どうだろう'
return printed
"""
context.manage_addProduct['PythonScripts'].manage_addPythonScript('foo', request)
---



2 kiyo 2003年 8月 5日 14時30分 Id=kiyo

今日も中神さんから有益な情報 http://www.freeml.com/message/zope-memo@freeml.com/0000440;j***
抜粋すると、こんな感じ
-----
context.manage_addProduct['OFSP'].manage_addXXXX とします。
具体的に、なんというメソッドを呼ぶかは
lib/python/Products/OFSP/__init__.py を見ればわかります。
-----
 
これ、とっても嬉しかった。
実は、まだ悩んでいた事があったのですが、教えて君状態になりそうで質問できなかった。
何かと言うと manage_addPythonScript だ。これも教えて貰った context.manage_addProduct['PythonScripts'].manage_addPythonScript(id=XXX)
で作成できた。が、そもそも PythonScript を作成すると言う事は、この中に処理を書きたいからだと思う。
この場合の XXX は、PythonScript の単なる id 文字列になるのでどのようにアクセスするか?
---
tempFolder --- Scriptを作成したいフォルダ
XXX ---- 今作った PythonScript の id 文字列(これはスクリプト上で作成する為単なる文字列)
context.tempFolder.manage_addProduct['PythonScripts'].manage_addPythonScript(id=XXX)
context.tempFolder.XXX.ZPythonScript_edit(params, body) ここで、行き詰まる。XXX ってどうかくの?
補足> XXX は作成した直後は単なる文字列です。例えば XXX = 'run%spy' % table
 
lib/python/Products/OFSP/__init__.py ソースと、中神さんのメールでふと思う。
context.tempFolder[XXX].ZPythonScript_edit(params,body) ではどうだろう?
できた!、中神さん、田原さん、感謝、感謝です。
 
# でも「どうだろう」なのでまだ解ってない...




1 kiyo 2003年 8月 5日 14時10分 Id=kiyo

解らなかった事、教えて貰った事の整理をしておこうと思って作ってみた。
 
昨日尋ねた、context.manage_addZSQLMethod は、context.manage_addProduct['ZSQLMethods'].manage_addZSQLMethod と書くらしい。
田原さんに教えて貰った。田原さん見ていないだろうけど感謝。