2

Plone 3.3 から 4.2 まで互換性のある方法でplone.app.registryバイナリ データ内に格納する必要があります。

単純なschema.Byteタイプを使用して、Plone 4.2 でこれにすばやく到達できます (あまりユーザーフレンドリーではありませんが、機能します) が、Plone 3.3 ではそうではありません。

Plone 3.3 では、レジストリはファイル アップロード コントロールを表示していますが、保存されたデータを取得しようとすると、次のような文字列が格納されているだけであることがわかりました。

'<... HTTPFileUpload...>'

...オブジェクトの python repr です。

どうすればこれを修正できますか? collective.z3cform.filewidgetでplone.namedfile製品を使用する必要がありますか?

4

3 に答える 3

4

plone.app.registry は、実際にはバイナリ データを格納するようには設計されていません。シンプル、軽量、移行防止になるように設計されています。

これで何を達成しようとしていますか?おそらくもっと良い方法があります。

于 2012-07-24T19:57:42.960 に答える
1

わかりました、Plone3でも同じ動作をすることができるようです。plone.z3cformのアップグレードのみが必要でした

于 2012-07-25T09:09:00.750 に答える
1

plone.formwidget.namedfile 1.0.12 以降、ASCII フィールドでもウィゲットを使用できます。その後、データは base64 に変換されます。Plone 5 は、レジストリに保存されているサイトのロゴにその機能を使用しています。

例として、その機能の Plone 4 バックポートを参照してください: https://github.com/collective/collective.sitelogo

特に:

ASCII画像のフィールドの使用: https://github.com/collective/collective.sitelogo/blob/master/src/collective/sitelogo/interfaces.py#L14

ASCIIフィールドのコントロール パネル ウィジェットを次のように変更しますNamedImageFieldWidget: https://github.com/collective/collective.sitelogo/blob/master/src/collective/sitelogo/controlpanel.py#L19

于 2015-10-28T11:26:44.363 に答える