問題タブ [template-tal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - カメレオンの改行
ピラミッドフレームワークを使用して、大規模なWebアプリケーションを構築しました。
特に、このアプリケーションを使用すると、ユーザーはテキスト領域のフォームフィールドにテキストを入力できます。このテキストはデータベースに保存され、もちろん再度読み取って後で表示することができます。
コンテンツを表示するには、ChameleonTemplateEngineを使用しています。
これは、改行が正しく表示されない(まったく表示されない)ことを除いて、正常に機能します。これはおそらく、テキスト領域に入力された改行が、カメレオンを介して表示されたときにHTMLで新しい行を引き起こさないという事実によるものです。どうすればこれを修正できますか?
<br>
デフォルトではChameleonはすべてのHTMLタグをエスケープするため、改行を-Tagに置き換えることは役に立ちません。この機能を無効にできることは承知していますが、クロスサイトスクリプティングを避けるために無効にしたくありません。
caching - SQL錬金術 + ピラミッド、「リクエストキャッシュ」
ピラミッド、sqlalchemy、chameleon を使用して Web サイトを作成しています... view.py で sqlalchemy を送信します。
とカメレオン:
しかし、sqlalchemy "user.minions.count()" は 2 回実行されるため、モデルにこれを追加しました。
「.count()」の代わりに「NumFixedMinions」の使用を開始しましたが、これにより、サーバーを再起動するまで_NumFixedMintionsが定義されました。何か不足していますか? または、リクエスト中にのみ単純な「キャッシュ」を作成する方法はありますか..
追伸:これは実際のコードではありません。ウェブサイトがモジュール化されているため、いつ何かが 2 回使用されるかを知るのは困難です。
plone - Plone 4ZopeDisplay特定のフォルダーの内容TALES
問題
検索で0の結果が返された場合に、特定のフォルダーのコンテンツ全体(画像を含む)を検索ページに表示したいという顧客がいます。フォルダはmysite.com/imagesにあります
設定:
テスト環境として、次の構造の別のサイトをセットアップしました。
テンプレートを変更してfolder_summar_view
、次のコードを含めました(ビューを変更して、ビューを細かく分割して、希望どおりに実行できるかどうかを確認することにしました)。
私が見るもの:
私が試したこととさらなる説明
私は、画像フォルダ内の「オブジェクト」の頭脳を返すときに、その下のステートメントcontext/images/getFolderContents
を使用して各「オブジェクト」を反復処理できると想定していました。tal:repeat
次に、それらを私のページに表示します。
次のコードを使用する場合:
私の出力は、上記の「表示内容」セクションと非常によく似ています。
ここで、[...]は別の番号です
私はいくつかの調査を行い、Plone Themingの本を読んでいますが、私のコードは169ページtal:repeat
の例に似ています。唯一の違いは、脳でこれを使用していないことです(私が知る限り)。
私はこれを試しましたが、同じ結果が得られました(なぜそうしないと思ったのかわかりません):
戻ってきた脳を「中に入れる」ことができないようです。私がオンラインで探したものはすべてそれほど役に立ちません。またatct_album_view
、folder_listings
テンプレートを調べて、役に立つことを知りました。-何かを見落としている、または見落としていると思います。
私が最初に出くわしたリンクはこれでしたが、それ以来、似ているものの、私がやろうとしていたこととはまったく違うので、先に進みました。
彼らのチャットルームにいるPloneの人たちは親切にも私にcontext/images/getFolderContents
声明をくれました。私は再び助けを求めずに押し込もうとしましたが、壁にぶつかったようです。
私が試した他のもの
このリンクをインスピレーションとして使用して、次のことを試してみることにしました。
しかし、テンプレートを表示しようとするとエラーが発生します。エラーは「getFolderContentsブレインには属性getURLがありません」の行に沿って読み取られます-image/Title
フォルダの名前が表示されますが、それは実際には必要なものではありません。
私もこのリンクを見つけましたが、デフォルトの検索を使用しているので、通常のPloneサイト検索に悪影響を与える可能性があるため、Pythonスクリプトを編集する必要はありません。また、このリンクでは、より多くのPythonスクリプトを使用しているようです。-この点を拡張するために、これらのスクリプトがページテンプレートと「リンク」する方法(互いに「話す」ことをどのように知っているか)がわかりません。
結論
結論として、自分のサイトのルートにある「images」という名前のフォルダーに含まれるすべての画像を表示する必要があります。を使用して、返された脳のコンテンツにアクセスできませんgetFolderContents
。そして、「画像」フォルダのタイトルまたは脳の識別()を表示する以外に<Products.ZCatalog.Catalog.mybrains object at 0x9d2ddb8>
、私は運がありませんでした。どんな助けやアイデアも歓迎します!
python - Chameleon で Code ブロックを使用すると builtins.NameError が発生する
このスニペットが機能することを期待していました:
代わりに次のように失敗します。
背景として、アイデアは毎年年を更新する必要を避けることです:
macros - ピラミッド / ZPT (カメレオン) でマクロを使用する方法
ピラミッド+ZPTエンジン(Chameleon)でマクロを使いたい。
ドキュメントには、「1 つのページ テンプレートで複数のマクロに対応できる」と記載されています。 http://chameleon.readthedocs.org/en/latest/reference.html#macros-metal
したがって、ファイルを定義しました
macros.pt
:
main_template.pt
スロットを定義するすべての html 要素を含むグローバル テンプレートcontent
。
スロットを埋めるためにprogress.pt
使用する私のビューのテンプレート:main_template.pt
use-macro="main_template.pt"
これまでのところ、Zope のように Chameleon がテンプレートを自動的にロードしないため、ただ言うことはできないことを痛感しました。load:
したがって、前にスニペットを追加する必要がありました。
に来ていuse-macro="step-0"
ます。これにより、 NameError が発生しstep-0
ます。macros.pt
のようなものをプリロードしようとしました<tal:block tal:define="compile load: macros.pt" />
が、これは役に立ちませんでした。
マクロ サマリー ファイルに集められたマクロを使用するにはどうすればよいですか?
html - Zope (ZPT) 重複タグ
Zope Page Template で TALを使用してオープンdiv
タグ条件を作成しdiv
、別の条件でタグを閉じようとしましたが、タグをオーバーラップさせることはできません。
これが私のコードです:
重要な部分は次のとおりです。
そして、ここにエラーがあります。
Pythonスクリプトで試しましたが、うまくいきませんでした。
close_div
スクリプトを使用:
</div>
代わりに返します</div>
なぜ私がそれをしているのだろうか。表示する必要があるツリー構造があります。私は(私が思うに)再帰的にそれを行うことができないので、LIFO リストを使用してエミュレートしようとします。そしてcurrent
、私の現在のノードです。
私はこれを達成しようとします(ノードは辞書の辞書です...ツリーとして使用されます):
どんな助けや提案も大歓迎です
plone - 別の tal:repeat 関数で tal:repeat のインデックスを取得する
ご覧のとおりProcedur_Headers
、Diagnoses
との 3 つのリストがありList_Procedur
ます。
Procedur_headers
テーブルのヘッダーを
Diagnoses
提供し、プロシージャの特定の ID を提供し、
List_Procedur
必要なすべてのデータが含まれているリスト (クエリ) のリストです。今私がしたいことは、診断ページのインデックスを
テーブルでデータを取得できること。私はすでにインデックスを取得できます:
しかし、インデックスの場所でこれを行うことはできません。誰かがこのようなものに対する解決策を持っていますか?
ajax - zpt と ajax を更新として使用してテーブルを動的に埋める
数秒ごとにテーブルを更新したいピラミッドで webproject を作成しています。私はすでに ajax を使用することに決めましたが、何かに行き詰まっています。
クライアント側では、次のコードを使用しています。
ピラミッド側:
ここで、tal:repeat ステートメントを使用して、このデータを zpt でテーブル内に配置したいと考えています。ページの読み込み時にこのデータをテーブルに配置する方法は知っていますが、これを ajax と組み合わせる方法はわかりません。
anny1 でこの問題を解決できますか? よろしくお願いします。
plone - Plone の個人設定フィールドの内容を取得する Python スクリプト
Plone 4 サイトにカスタム登録と @@personal-preferences ページがあります。ソーシャル ネットワーキング リンクを貼り付けるための領域や、会社での地位など、いくつかの追加フィールドがあります。また、日付も表示されます。サイトに登録しました。(私はこれを達成するためにcollective.examples.userdataを使用しました)
以下の定義を使用して、ページ テンプレートでこれらのフィールドを正常に参照できます。
python:user.getProperty('regday')
の最後の定義を取得し、サイトに登録されている期間を表示するためにいくつかの計算を行うPython スクリプトを作成しようとしています。
私のスクリプトは memberLength を呼び出しており、カスタム フォルダーにあります。次のように呼び出しています。
私は多くのことを試しましたが、常にトレースバックエラーが発生するため、Pythonにそれらのフィールドの詳細を取得するように指示する方法がよくわかりません..フィールド情報):
Python スクリプト:
ただし、現在の基本的なユーザー情報 (ユーザー名、説明など) の辞書が返されますが、そこには何も役に立ちません。この dict にカスタム フィールドが表示されることはありません。
上記は「見つかりませんでした」というメッセージを返すため、それも機能しません。以下のスクリプトでも同じことが言えます。
私はこれを試しました:
ただし、AttributeError: user
トレースバック メッセージが表示されました。
この tal ステートメントも試しcontext/userRegDay/membershipLegth
ましたが、エラーが発生したため、Python の代替手段を試しましたcontext.userRegDay.membershipLegth()
が、機能しませんでした。
上記の私のフィールドはすべて、ZMIProperties
の私のページのタブにあります。portal_memberdata
Google はここではあまり役に立ちません。私が見つけられるのはこのページだけですが、私が知る限り、私がやろうとしていることは実際にはカバーされていません。
UserRegDay 変数を Python スクリプトに渡す方法を誰か教えてもらえますか? それとも、私はこれについてすべて間違っていますか?
私の試みを読んだ結果として血圧が上昇する可能性がある、経験豊富な Plone の人々に前もってお詫び申し上げます。
どうもありがとう。