私の仕事は、Plone 3.1.2 Webサイトからコンテンツをアンロードし、コンテンツに関する情報をSQLデータベース+ファイルシステムにロードすることです。
Webサイトを再作成し、ZODBにアクセスして、オブジェクトとフォルダーの構造を再作成しました。フォルダ、ファイル、ドキュメントのプロパティを読み取ることもできます。ATDocumentの.getText()メソッドを機能させることができません。トレースバックは次のようになります。
トレースバック(最後の最後の呼び出し):
File "C:\Users\jan\Eclipse_workspace\Plone\start.py", line 133, in ?
main()
File "C:\Users\jan\Eclipse_workspace\Plone\start.py", line 118, in main
print dokument.getText()
File "e:\Program Files\Plone 3\Data\Products\Archetypes\ClassGen.py", line 54, in generatedAccessor
File "e:\Program Files\Plone 3\Data\Products\Archetypes\BaseObject.py", line 828, in Schema
TypeError: ('Could not adapt', <ATDocument at /*object_path*>, <InterfaceClass Products.Archetypes.interfaces._schema.ISchema>)
オブジェクトをインターフェースISchemaに接続することに問題があると思いますが、これまでPloneを使用したことがなく、オブジェクトモデルがわかりません。
何が間違っているか欠落している可能性があるか、どのように修正できますか、および/または次に何をすべきかについての提案はありますか?どういうわけかISchemaインターフェイスクラスをこのオブジェクトに接続する必要があると思いますが、どこから始めればよいのかわかりません。助言がありますか?
私は今2日間立ち往生していて、前進しないので、どんな助けにも大いに役立ちます。
ZCMLフォーマットやその編集方法については何も知りません。デバッグモードの後>>> print dokument.getText()
、スクリプトはGeneratorクラスのメソッドにジャンプするためmakeMethod()
、スクリプトは実行されないと想定しますが、.getText()
代わりにこのメソッドを作成しようとします。
inspect.getmembers(dokument)
メソッドを返すので、getText()
私は本当に混乱しています。どのZCMLファイルがATDocumentクラスに関連している可能性があるか知っていますか?または、このテーマに関する情報はどこで探すことができますか?
私のstart.pyファイルは、次のインポート以外にはほとんど何もしません。
from ZODB.FileStorage import FileStorage
from ZODB.DB import DB
from OFS.Application import Application
from BTrees import OOBTree
from Products.CMFPlone.Portal import PloneSite
次に、ドキュメントオブジェクトにアクセスして、実行を試みます.getText()
編集213-03-2615:27(GMT):
.zcmlファイルについて私が受け取ったサイトは、Products(に抽出された\Plone 3\Data
)、lib、package-includesの3つのフォルダーでした。
lib内には、「common」、「abc」、「def」の3つのサブフォルダーを含むpythonフォルダーがあります(名前はクライアントの情報を公開しないように変更されています)。これらの各サブフォルダーにはconfigure.zcmlファイルが含まれており、そのうちの1つにはoverride.zcmlファイルも含まれています。
フォルダーpackage-includesには4つのファイルがあり、それぞれ1行の長さです。次の行が含まれています。
<include package="abc" file="configure.zcml" />
<include package="def" file="overrides.zcml" />
<include package="common" file="configure.zcml" />
<include package="def" file="configure.zcml" />
これらのzcmlファイルは現在コピーされていません。これらをどこにコピーしてインポートできますか?