Django,Tastypie和检索新的对象数据

Jes*_*uez 4 django tastypie knockout.js

我玩重型客户端应用程序.

想象一下,我有这个模型:

class Category(models.Model):
    name = models.CharField(max_length=30)
    color = models.CharField(max_length=9)
Run Code Online (Sandbox Code Playgroud)

我使用knockoutjs(但我想这并不重要).我有一个列表(observableArray)与类别,我想创建一个新类别.

我创建了一个新对象,然后将其推送到列表中.到现在为止还挺好.

把它保存在我的数据库上怎么样?因为我正在使用tastypie,我可以对'/ api/v1/category /'进行POST,并且新的类别在DB上.

好的,但是......我没有刷新页面,所以...如果我想更新新类别,我该怎么做?

我的意思是,当我检索类别时,我可以保存ID,这样我就可以设置'/ api/v1/category/id'并保存更改,但是...当我创建一个新类别时,数据库分配它的ID,但我的JavaScript还不知道该ID.

换句话说,工作流程类似于:

make get>将现有对象(及其ID)推送到列表>创建新类别>将其推送到列表>保存现有类别(该类别在javacript上没有id)>编辑类别>我如何保存更改?

所以,我的问题是,共同的道路是什么?我想过发送类别并以某种方式检索id并将其分配给我在js上的对象以便以后能够修改它.问题是对服务器进行POST不会返回任何内容.

在过去,我做了类似的事情,通过post发送对象,保存,检索并发送回来,在success方法中检索id并将其分配给js对象.

谢谢!

juj*_*ule 8

Tastypie附带了一个always_return_dataResources选项.

always_return_data=True你的资源,该API总是返回在POST/PUT完整的对象的事件,所以,当你创建一个新的对象,你可以得到相同的请求创建ID.

然后你可以从你的AJAX读取响应并解码JSON(我还不知道敲门声).

参见文档:http://readthedocs.org/docs/django-tastypie/en/latest/resources.html? highlight = always_return_data#always-return- data

希望这可以帮助