私は次のようなファイル構造を持っています:
-product
- content
- MyContent.py
- Tool.py
Tool.py には、
from AccessControl import ClassSecurityInfo
from OFS.SimpleItem import SimpleItem
from Products.CMFCore.utils import UniqueObject
class Tool(PropertyManager, UniqueObject, SimpleItem):
@staticmethod
security.declarePublic('convert_to_lower')
def convert_to_lower(data):
return data.lower()
MyContent.py では、I Tool がこのクラス メソッドにアクセスするので、次のようにしました。
from Product.Tool import Tool
from Product.Content.ATContentTypes.content.base import ATCTContent
class MyContent(BaseContent):
def new_definition(self):
print Tool.convert_to_lower("ABCD")
ここで間違っていることを見つけることができないようです。MyContent のオブジェクトを次のようにインスタンス化します。
mycontent = MyContent()
mycontent.new_definition()
しかし、実行すると、メソッド convert_to_lower が定義されていないというエラーが表示されます。注: convert_to_lower() は、私がやろうとしていることの単なる例です。