我正在尝试使用 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/