我正在浏览器中执行大量 JavaScript 工作,并希望在前端拥有一些后端功能。具体来说,让客户端可以使用函数get()
、和会很好。此外,如果模型的字段列表已经在生成的 JavaScript 对象中可用,那就太好了。save()
all()
count()
当前用户是否可以读取或写入记录是一个单独的问题,我将使用 Django 的身份验证来处理。目前,检索将是一个开始。
简而言之,是否有可以从 Django 模型生成 JavaScript 模型的代码?
谢谢。
我正在浏览器中执行大量 JavaScript 工作,并希望在前端拥有一些后端功能。具体来说,让客户端可以使用函数get()
、和会很好。此外,如果模型的字段列表已经在生成的 JavaScript 对象中可用,那就太好了。save()
all()
count()
当前用户是否可以读取或写入记录是一个单独的问题,我将使用 Django 的身份验证来处理。目前,检索将是一个开始。
简而言之,是否有可以从 Django 模型生成 JavaScript 模型的代码?
谢谢。
听起来您正在寻找模型和查询集 API 的完整 JavaScript 接口。我无法想象这会完成,甚至是一项简单的任务。您不仅需要以某种方式生成模型的 JavaScript 实例(比 JSON 序列化提供的要多得多,因为您还需要这些方法),而且您需要公开一个可以处理各种 DB-API 调用的 Web 服务。我什至无法想象从哪里开始,安全问题可能太多而无法轻松克服。
另一种(也更简单)的方法是使用各种 Django REST 模块和 JSON 序列化之一。您可以对资源执行 AJAX GET 请求,该请求可以通过一系列查询参数来识别,这些参数相当于链式查询集过滤器。这将返回模型值的 JSON 表示。然后,您可以修改 JavaScript 对象并使用重载的 AJAX POST 请求将更改保留回服务器。您将无法访问模型的方法,因此必须重新实现功能,但对模型进行任何更改都应该足够简单——这基本上是使用 HTML 表单修改数据的 JavaScript 等价物。
你需要一个数据序列化器。您可以使用 django 内置的序列化程序来完成。它记录在官方 django 网站上。djangoproject_topics-序列化
我已经开始了一个我认为完全符合您要求的项目。你可以在
github_bumby_jslib找到它。
它目前只支持 get(),但我希望尽快扩展它。随意贡献补丁:)
jslib 是一个 Django 应用程序,旨在简化与您的 Django 项目的 AJAX 集成。
因此,自从我发布原始问题以来已经有一段时间了,从那时起,Djangoland 有了一些发展。其中最重要的是一个很棒的小库,叫做 Django REST Framework。我将在一个新项目中使用它,它看起来很漂亮。