2012-03-09 79 views
3

是否有任何可能的方法覆盖PUT响应的同步方法,并从db中排除id字段,并保持不变?我为API使用Django REST框架;而试图PUT,我越来越:override backbone.sync only for put

{"field_errors": "id": ["This field does not exist."],} 

我想,如果我重写同步和排除id领域PUT,我的问题将得到解决,但我不知道该怎么做。

+0

如果你的问题是可以修改URL的默认[Collection.url(http://documentcloud.github.com/backbone/#Collection-url)和/或[Model.urlRoot(HTTP ://documentcloud.github.com/backbone/#Model-urlRoot)默认行为。 – fguillen 2012-03-13 16:28:30

回答

3
Backbone._sync = Backbone.sync; 
Backbone.sync = function(method, model, options) { 
var params = _.clone(options); 
delete model.attributes.id; 
params.success = function(model) { 
    if(options.success) options.success(model); 
}; 
params.error = function(model) { 
    if(options.error) options.error(model); 
    }; 
Backbone._sync(method, model, params); 
} 
+0

我只想问问这种代码在哪里?在视图上?尽管我使用backbone,underscore和required.js。我怎么称呼它?因为正常同步将我需要的模型串联起来,从而对串化模型进行串联。 – jongbanaag 2012-03-30 01:58:27

+0

你应该保持在这个模型的代码,骨干调用它时自动有GET,POST,PUT,DELETE请求,大多数情况下,model.attributes.id不工作,我的情况下,它的工作原理,需要检查它 – 2012-03-30 10:44:33

+0

为stringifies检查主干中的解析方法 – 2012-03-30 11:13:24