2008-10-14 107 views
5

我在浏览器中执行了大量JavaScript工作,并希望在前端具有一些后端功能。具体来说,如果客户端可以使用功能get(),save(),all()count(),那就太好了。此外,在生成的JavaScript对象中已经有可用的模型的字段列表是非常好的。从Django模型生成JavaScript对象

当前用户是否可以读取或写入记录是一个单独的问题,我将使用Django的身份验证处理。目前,检索将是一个开始。

总之,是否有代码可以从Django模型生成JavaScript模型?

谢谢。

回答

7

这听起来像你正在寻找一个完整的JavaScript接口模型和查询集API。我无法想象这会做到甚至是一件简单的事情。您不仅需要以某种方式生成模型的JavaScript实例(远远超过JSON序列化提供的功能,因为您还需要这些方法),但您需要公开一个可处理各种DB-API调用的Web服务。我甚至无法想象从哪里开始,安全问题可能太多而无法轻易克服。

另一种方法(也简单得多)将使用各种Django REST模块和JSON序列化之一。您可以对资源执行AJAX GET请求,该请求可以通过一系列查询参数进行标识,这些查询参数将等同于链接的查询集过滤器。这将返回模型值的JSON表示。然后,您可以修改JavaScript对象并使用重载的AJAX POST请求将更改保留回服务器。您将无法访问模型的方法,因此必须重新实现功能,但对模型进行任何更改都应该足够简单 - 基本上,这与使用HTML表单修改数据的JavaScript等效。

+0

是的,我认为这是正确的做法,但也许你想在开始之前阅读http://jacobian.org/writing/rest-worst-practices/。 – 2011-12-08 18:47:58

0

这听起来像你想要JSON encode你的对象数据。有关数据格式的更多信息,请参阅JSON.org

+0

JSON编码只提供对象数据。它不提供参考模型(或其名称),也没有提供任何功能。 :( – Dimitry 2008-10-14 17:53:46

1

我已经开始了一个项目,我认为它完全符合你的要求。你可以在 github_bumby_jslib找到它。
它目前只支持get(),但我希望能尽快扩展它。随意贡献补丁:)

jslib是一个Django应用程序,旨在简化与Django项目的AJAX集成。

0

因此,我发布了最初的问题已经有一段时间了,从那时起,Djangoland就有了一些发展。其中最重要的是一个名为Django REST Framework的小型库。我将在一个新项目上使用它,它看起来很漂亮。

http://www.django-rest-framework.org