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对象.
谢谢!
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
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
1689 次 |
| 最近记录: |