我有基于django rest框架的rest api,其中包括创建对象的下一个方法,它将JSON格式'myapp/create_obj/'
的数据作为数据,如果数据正确,则将创建对象,否则它将以JSON格式返回错误。
def create_obj(request):
stream = StringIO(request.raw_post_data)
data = JSONParser().parse(stream)
serializer = ObjSerializer(data=data, many=True)
if serializer.is_valid():
serializer.save()
return JSONResponse(serializer.data, status=201)
else:
return JSONResponse(serializer.errors, status=400)
我也尝试在ebrian.js上创建一个模块,该模块将表单数据中的输入发布到此方法。我对JS非常陌生,特别是对于骨干网,我不好理解骨干网如何与服务器api一起工作。我有类似的东西
App.module('Createobj', function(Mod, App, Backbone, Marionette, $, _) {
Mod.id = 'create-obj';
Mod.controllers = {};
Mod.Obj = Backbone.Model.extend({
defaults: {
real_ref : '',
share : ''
}
});
Mod.View = Marionette.ItemView.extend({
id: 'create-obj-page',
template: '#tpl-create-obj-page',
model: Mod.obj,
ui: {
'real_ref': 'input[name=real_ref]',
'share': 'input[name=share]',
'error': 'div.error'
},
hammerEvents: {
'tap button': 'submit:tap'
},
hammerOptions: {
tap: true
},
showError: function(message) {
this.ui.error
.text(message)
.show();
},
hideError: function() {
this.ui.error.hide();
},
});
Mod.Controller = SRClient.PageController.extend({
id: Mod.id + '.main',
ViewClass: Mod.View,
setup: function() {
this.listenTo(this.view, 'submit:tap', this.submit);
},
submit: function() {
var real_ref = this.view.ui.real_ref.val(),
share = this.view.ui.share.val();
if (!real_ref || !share) {
this.view.showError($t('create-obj.error_empty_fields'));
return;
}
App.vent.trigger('loading-screen:show', $t('app.please_wait'));
var obj = new Mod.obj({
real_ref : this.view.ui.real_ref.val(),
share : this.view.ui.share.val()
});
}});
Mod.addInitializer(function() {
Mod.Controllers = {
default: Mod.Controller
};
App.pageControllers[Mod.id] = Mod;
});
});
我需要做什么,我在Webform中输入的数据以'myapp/create_obj'
json格式发送到?谢谢!
Backbone期望使用RESTful api,因此REST可以与Resources和HTTP方法一起使用,而不是像create_obj这样的动作作为端点。在您的情况下,您可以具有以下模型:
var Obj = Backbone.Model.extend({
defaults: {
real_ref : '',
share : ''
}
});
还有这样的收藏
var Objects = Backbone.Collection.extend({
url: 'myapp/obj',
model: Obj
});
该集合具有url
指定服务器端点的属性。因此操作将是
Tastypie是一个使用Django创建RESTful API的好框架。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句