django respite + backbone 在获取 url 时搞砸了

标签 django rest backbone.js

我正在尝试使用 django-respite 实现 REST API与 Backbone.js 配对。假设我有:

模型.py:

class Books(models.Model):
      name = models.CharField(max_length = 100)
      author = models.CharField(max_length = 100)

和 views.py :

from respite import Views

class BooksView(Views):


    def index(self, request)
    return self._render(
        request = request,
        template = 'index/index'
        context = dict(
            books = Books.objects.all()
        ),
        status = 200,
    )

book1 = Books.objects.create(name = 'foo', author = 'bar')
book2 = Books.objects.create(name = '123', author = 'abc')

当我使用 Tastypie 获取它时,它会产生 1 个集合和 2 个模型,第一个模型包含 book1,第二个包含 book2 和包含 2 个模型的集合。

当我使用 respite 获取它时,它会产生 1 个集合 1 个模型,该模型就像一个集合(模型数组),并且该集合包含 1 个模型。

有办法解决这个问题吗?

最佳答案

我没有使用 respite 的经验,但我认为问题在于您返回的 JSON dict 是一个带有一个键的字典,以及那本书中的所有模型。

您可能只想从 View 中返回一个数组,因此 Backbone 会看到它是一个模型集合。

所以改变:

context = dict(books = Books.objects.all()),

context = Books.objects.all(),

它应该返回一个数组(如果 respite 足够聪明的话)。

关于django respite + backbone 在获取 url 时搞砸了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13409474/

相关文章:

django - 在网页中嵌入可编辑的 Google 文档电子表格

python - Django 版本选择

javascript - CanJS 添加自定义 MODEL 方法

javascript - Backbone.Wreqr 与 Javascript 对象

javascript - 使用 Backbone 从带有额外引号的文本文件导入

javascript - 切换 Backbone 和 Marionette 中的树列表分支

django - Google Oauth 2.0 网络应用程序 "Authorized redirect URIs"必须以公共(public)顶级域(例如 .com 或 .org)结尾?

python - Wagtail 自定义设置未显示

javascript - 在 Post API 调用正文中动态传递参数

java - Resteasy 客户端抛出异常