0

ここで何か基本的なことが欠けていると確信していますが、これに頭を悩ませるのに何時間も費やしました。私は Django を初めて使用するので、ご容赦ください。

テンプレートからメソッドを呼び出すにはどうすればよいですか?

具体的には、自動再生するページと要素をロードしてから、別のファイルを使用して別のページをロード/再生したいと考えています。(python スクリプトを介して選択されます。)

これをカスタムタグとして定義する必要がありますか? ここで欠けている概念は何ですか?

どうもありがとうございました!ローレン

4

2 に答える 2

2

はい、テンプレートで (引数を使用して) 関数を呼び出すことはできません。それがテンプレートタグの目的です。

もちろん、テンプレート エンジンをより寛容なもの、たとえばJinja2に交換することもできます。しかし、そのソリューションは、限られたタスクには複雑すぎると思います。

プレイリストが事前にわかっている場合は、ビューで作成してテンプレートに渡すことができます。

しかし、python を使用してメディアを再生し、リダイレクトを行うことは、賢明な方法で可能であれば、おそらく良い考えではありません。

DTing がコメントで述べたように、これは Javascript/JQuery の典型的な使用例のように思えます。多くの JQuery プラグインがあります。目的に合ったものを見つけるのはそれほど難しいことではありません。たとえば、 jPlayerを見てください。

さらに詳しく知りたい場合は、次の記事をご覧ください: jQuery を使用したカスタム HTML5 オーディオ プレーヤーの構築

于 2011-04-15T07:33:18.280 に答える
1

Django のテンプレートがどのように機能するかについて、少し混乱していると思います。テンプレートは、サーバー上で文字列を生成する役割を果たします。この文字列は HTML マークアップでいっぱいです。テンプレート タグは、サーバー データに基づいて文字列の一部をレンダリングするために使用されます。

この文字列が作成されると、Web サーバー経由でクライアントに送信されます。これは単なる文字列であることを忘れないでください。

この時点から、実行する必要があるコードはすべて JavaScript である必要があります。あなたの例は、クライアントでのファイルの再生が終了するのを待つことを指しています-したがって、クライアント(javascript)はそのファイルが終了するのを待って新しいファイルを開始する責任があります。サーバーに別の HTTP リクエストを行わずに、クライアントから Python コードを呼び出すことはできません。テンプレート タグは HTTP をトラバースしてクライアントに到達しません。それらは、サーバーが送信される文字列を構築するのを助ける方法にすぎません。

于 2011-04-16T09:33:10.787 に答える