Django AJAX - 建议

Posted

技术标签:

【中文标题】Django AJAX - 建议【英文标题】:Django AJAX - suggestions 【发布时间】:2011-11-26 07:57:56 【问题描述】:

我用 django 制作了一个功能性网站,但我有两种形式,它们位于不同的页面中。由于 webapp 的所有活动都以这些表单为中心,我想将它们都放在主页上,以节省空间并保持“桌面”的外观和感觉。

使用 Django 的正确方法是什么?

使用 Ajax 调用(我在想 jQuery)来调用带有表单的页面,从而使视图保持相对简单,或者将主页面视图与表单视图合并,这将导致代码混乱和大量数据库命中,也许是不必要的?

【问题讨论】:

【参考方案1】:

您可以使用 Dajax (http://www.dajaxproject.com/) 来做到这一点,这是一个很棒的 Django 插件,用于快速、简单地实现 AJAX。

索引页面可以为每个表单调用带有回调 javascript 方法的 Dajaxice 函数。 Dajaxice 函数(python 方法)将生成 html,而回调 javascript 方法会将其写入与该部分关联的屏幕元素。

我有一个类似的情况,我有部分数据都由 dajax 单独调用,以填充单个编辑屏幕。

【讨论】:

感谢您的快速回复。我看过一次,但我并没有真正考虑过。我现在就试试。告诉我,它如何与 jQuery 一起玩,我需要它来做其他事情? 我的荣幸。 Django 太棒了,我一直很喜欢使用它。实际上 jQuery 可以很容易地与 Dajax 结合使用。 % dajaxice_js_import % 你用 Dajaxice 调用了一个 python 方法。.(, );这将执行 并将您想要的任何内容返回给 javascript 方法。我建议 返回一个可以由回调方法解析的 simplejson.dumps(dictionary)。类似于:return simplejson.dumps('form_id': 1, 'field_name': 'first_name', 'orig_value', '')。对于回调: function callback(form) $('#form' + form.form_id).show(); 。有点愚蠢的例子,但它使用 jQuery 来操作屏幕和 django/dajax/python 来获取数据。 啊哈,我明白了。您实际上是通过 dajaxice 调用整个视图,然后通过 json 转储数据并将其传递给回调方法。谢谢你,你一直很有帮助! 只是想报告 Dajax 和 Dajaxice 看起来很棒,但是设置它们真的很痛苦。无论如何,它们确实工作得非常好,并且它们与 jQuery 配合得很好。我还有一个问题:在您的“主要”视图中,您已经有了一个刚刚填充了 dajax 的表单,还是您从 dajax 调用了表单本身?

以上是关于Django AJAX - 建议的主要内容,如果未能解决你的问题,请参考以下文章

来自 Django 模板的 Ajax JQuery 请求和响应

将 Django 与 Ajax 库集成的“最佳”方式

使用基于类的视图和 ajax 的 Django 应用程序?

为啥 PyCharm 不建议为 django 模型自动填充?

Django:django模型的建议

两部分:Django 书籍推荐 + Django 真实世界建议 [关闭]