1

我有一个用于相册/图片管理的页面,有 2 个部分:相册和图片。

选择相册时,图片块需要通过 AJAX 更改以反映所选相册。

这意味着渲染的图片块需要提供给相册页面,并且作为 AJAX 源的自己的视图可用。

我知道我可以通过让图片块始终从 AJAX 渲染来解决这个问题,即使在相册页面加载时也是如此,但是如果可能的话,我想在初始页面加载中提供默认的相册图片。为了做到这一点,我想在相册页面视图中通过与图片 AJAX 视图相同的模板来呈现图片块。

我只熟悉在 TemplateView 对象中提供模板作为 template_name 属性。

我想我可以简单地使用inclusion_tag 调用PictureView 的一个实例,然后将我需要的数据从render_to_response 中提取出来(我还没有尝试过,我只是在理论上)但这对我来说似乎有点脏。我想知道这个问题是否有更优雅的解决方案?

谢谢!

4

2 回答 2

2

jQuery、Django 模板、JS 模板和backbone.js 应该将它们联系在一起。

我建议为 Pages 块使用专用模板。将此模板包含在页面的 Django 模板中。

对于动态更新,请使用 JS 模板库,例如underscore.jsmustache.js中包含的。您可以更改使用的模板分隔符,使其与 djangos 相同。

将原始页面块模板包含到javascript模板块中 - 使用 django ssi标记。

使用django-tastypie设置一个以 JSON 格式返回照片数据的 api。然后,您的模板库可以使用数据将模板填充到 JS 模板块中,然后您可以用这个呈现的 HTML 替换 Photo 块。使用backbone.js应该可以简化DOM 元素和JS 事件的绑定。

于 2012-10-12T10:15:42.137 回答
1

如果我正确理解您的问题,我曾经做过类似的事情,该小节有自己的模板文件,它只描述了页面的一个部分。我使用include 标记将其包含到页面模板中,因此它在页面加载时加载,然后使用更新的值呈现该模板,并在内容要更改时用 AJAX 在页面上替换它。

这对你来说是一个选择吗?

于 2012-10-12T10:16:03.373 回答