1

私がやろうとしているのは、Django アプリでSIMILE タイムラインを使用することです。タイムラインには、XML ファイル内のデータが必要です。これで、html でビューをレンダリングする方法がわかりました。また、ビューを XML にレンダリングする方法もおそらく理解できるでしょう。しかし、両方をレンダリングし、XML ファイルがディスク上に存在しない場合 (Django によって生成されているため)、XML データを HTML ファイルに取り込むにはどうすればよいでしょうか。

ありがとう!

編集: XML を取る行は Javascript であり、次のようになります。

Timeline.loadXML("/static/example1.xml", function(xml,url) {eventSource.loadXML(xml,url); })

XML を文字列として直接挿入しても機能しないため、パスが必要です。ただし、XML ファイルは実際にはディスク上に存在しないため、パスは存在しません。

4

2 に答える 2

1

ビューで XML を生成する必要はありません。XML テンプレートを作成し、それを string にレンダリングして、結果を一時ファイルに書き込むだけです。

于 2011-10-14T00:04:04.427 に答える
1

同じビューにあまりにも多くのものを詰め込もうとしているようです。

私がすることは次のとおりです。

  1. XML を生成するビューを作成します (ビューへのすべての要求は、XML を最初から生成する必要があります)。
  2. タイムライン ウィジェットを使用するビューを作成し、1) で XML を指すようにします。
  3. Django のキャッシングレイヤーを有効にし、XML ビューに適切に注釈を付けます。例えば、@cache_page(60 * 60)

何らかの理由で、HTML の生成時に XML が必要な場合 (タイトルに示されているように)、HTML ビューから直接 XML ビューを呼び出すことができます。例えば:

@cache_page(..)
def xml(request):
  # ... generate xml

def html(request):
  xml = xml(request)
  # ... generate timeline from xml

もちろん、手動でディスクにキャッシュすることを妨げるものは何もありませんが、Django の機能を使用する方が簡単です。

于 2011-10-13T09:20:23.883 に答える