0

我正在创建一个 Django/JQuery/MySQL 应用程序,其中我将复合数据结构“网格”传递为

return render_to_response('products.html', grid)

我将“网格”渲染成一组 UI 元素(“td”、“按钮”、“div”等,封装在 HTML“表格”中。

一个典型的用例:

  1. 用户点击表格中的某个 UI 元素
  2. jQUery.click() 被调用,它为被点击的元素创建一个内部“输入”标签。
  3. 用户可以从元素中添加/修改/删除文本。
  4. 当焦点丢失时,调用 jQuery.blur() 恢复被点击元素的原始属性,例如删除输入标签等。
  5. jQuery.blur() 还调用了一个 AJAX 函数,我在其中执行 .post 调用以将用户修改的数据发送回 URL(视图中的函数)。
  6. 视图中被调用的函数然后提交数据库中的新更改并将“成功”事件返回到网页:

    tc_model_instance.update(tc_id=json_data['id'])
    

通过这个用例,您可以看到,只要用户输入数据并放弃对特定元素的关注,更改就会立即提交到数据库。如果不使用 INNODB 中的 DB 事务,我该如何创建视图-模板关联,以便 HTML 模板中的任何更改异步反映在模型中,但不一定写入数据库。

一个相关问题:如果可能的话,我还想在呈现的模板和我的数据结构之间创建一个基于事件的双向关联作为视图的一部分,以便在 Web 浏览器的 UI 元素或关联视图的数据中进行任何更改总是同步的。我计划将 AJAX 用于大多数目的。不确定表格在这方面是否有意义。

谢谢。

4

1 回答 1

1

您可能会将该对象的副本放入会话映射中,并且所有帖子都会更改该对象而不是直接更改数据库。然后,当用户按下保存按钮时,您将向服务器发出另一个 POST 命令,然后调用 session['my_object'].save()。

请注意,尽管会话对象也保存在数据库中,所以如果您试图完全避免访问数据库,我上面写的内容将无济于事。

于 2012-04-11T11:47:34.157 回答