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

你似乎试图在同一个视图中塞进太多东西。

我要做的是:

  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 回答
1

您不需要在视图中生成 XML。只需创建一个 XML 模板,将其呈现为字符串,然后将结果写入临时文件

于 2011-10-14T00:04:04.427 回答