1

選択フィールドを動的に設定して ploneformgen フォームをカスタマイズしようとしています。ファイルシステム上のファイルを解析し、日付と時刻に基づいて特定のオプションを選択する必要があります。Python スクリプトを作成するのは簡単でしたが、スクリプトをどこに配置すればよいのでしょうか?

  1. 私が理解していることから、外部メソッドは plone 4 で推奨される選択肢ではありません
  2. ZMI 経由で python スクリプトを追加しようとしましたが、制限された python に遭遇し、スクリプトが実行されませんでした。
  3. アドオンを開発し、egg フォルダに配置し、アドオンからコードを呼び出す python スクリプトを作成しましたが、残念ながら以前と同じエラーで再びヒットしました。ページ"。私が理解したことから、アドオン内のコードは制限されていませんか?

フォームのカスタマイズを実現するための最良のオプションは何ですか?

4

1 に答える 1

3

スキン スクリプトを使用した場合は、はい、制限された python としても実行されます。これは、ZMI python スクリプトに相当するファイル システムに格納されたものです。

ベスト プラクティスは、ブラウザ ビューを使用することです。これは、リクエストとコンテキストが関連付けられた単なる呼び出し可能なオブジェクトです。

from zope.publisher.browser import BrowserView

class MyBrowserView(BrowserView):
    def __call__(self):
        request = self.request
        context = self.context
        # Do something with the request and context

これを configure.zcml に登録します。

<browser:view
    for="*"
    name="mybrowserview"
    class=".views.MyBrowserView"
    permission="zope2.Public"
    />

その後someobject/@@mybrowserview、PloneFormGen として利用可能になります。

ただし、これがカスタム パッケージを作成する唯一のものである場合は、必ず外部メソッドを使用してください。

于 2012-05-30T07:59:11.200 に答える