【问题标题】:using dajax in django在 django 中使用 dajax
【发布时间】:2012-06-07 14:31:08
【问题描述】:

我发布这个问题不是因为我遇到了一些错误,而是因为我想知道应该如何使用 dajax

这是我想做的:

我想在我的主页上添加一些链接(例如书籍、作者),当用户点击它们时,他会获得书籍/作者列表。

这是我正在做的事情:

当用户点击书籍时,我调用了一个 dajax 进程。 ajax.py 内部:

  • 我使用books = Book.objects.all() 获取所有书籍
  • 我有一个template = "{% for book in books %}"... blah blah blah
  • 我渲染了模板a = Template(template).render(Context(locals()))
  • 我确实将 dajax 分配为一些 div 标签的 innerhtml。

这是正确的做事方式吗? 我应该从一些 xyz.html 打开模板然后渲染它,而不是在 ajax.py 中编写模板?还有其他好的、干净的方法来完成类似的任务吗?

【问题讨论】:

    标签: ajax django python dajaxice


    【解决方案1】:

    我之前从未听说过dajax(但由于最近的提交时间大约为 10 个月,因此该项目似乎已经完全处于非活动状态),所以我将提供与 dajax 没有直接关系的建议。

    基本上,您需要做的是显示一个使用 AJAX 检索的列表。使用以下工具非常简单:

    • jQuery(或其他 JS 框架)
    • JSON

    你需要做的是:

    1. 配置您的一个视图,使其返回图书列表 (look here for the documentation)
    2. 使用您选择的 JS 框架访问此视图(jQuery.get() 用于 jQUery)
    3. 使用您的 JS 框架,通过添加您通过 get 调用检索到的内容来更新页面上的一些 <ul><ol>(并且您可以将其放置在您要显示的某些叠加层中)。

    【讨论】:

      【解决方案2】:

      从专用模板文件加载模板几乎在任何情况下都更干净。一个带有 HTML 的长 python 字符串不是很可读。

      当然,您也可以通过add_data(data,callback_function) 发送您的书籍,并编写一个 javascript 回调函数来填充列表,这将是 Dajax 执行 Thomas Orozco 建议的方式。

      但从pagination example 渲染模板文件并将其发送到innerHTML 来看是'正确的方式'。

      【讨论】:

      • 谢谢。我想我会加载模板而不是使用 python 字符串。另一种方法是 Dajaxice(callback, {..args..})。但这让我的 js 变得丑陋。所以 dajax 似乎是目前最好的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-22
      • 2012-02-27
      • 1970-01-01
      相关资源
      最近更新 更多