2015-01-26 47 views
0

是否可以從AngularJS調用Django Manager方法?我可以從AngularJS調用Django Manager方法嗎?

例如像稱爲AngularJS該工廠PUT方法:

var app = angular.module('app', ['ngResource', 'ngRoute']); 
// Some APIs expect a PUT request in the format URL/object/ID 
// Here we are creating an 'update' method 
app.factory('Notes', ['$resource', function($resource) { 
return $resource('/notes/:id', null, 
    { 
     'update': { method:'PUT' } 
    }); 
}]); 
// snipped ... 
Notes.update({ id:$id }, note); 

但Django的get_or_create例如?

所以不是這個在Django:

obj, created = MyObject.objects.get_or_create(**kwargs) 

我想這樣做:

app.factory('Notes', ['$resource', function($resource) { 
return $resource('/notes/:id', null, 
    { 
     'get_or_create': // some code here but do not know what?? 
    }); 
}]); 
// snipped ... 
Notes.get_or_update({ id:$id }, note); 

我想這樣做,因爲我已經寫了自定義的一個很好的協議Django Managers並希望將AngularJS用於UI,但不希望在必要時重新編寫它們。

由於

+1

你在後端爲你的API使用了什麼? 'Django的休息,framework'?定製的API端點?你需要在那裏放置'get_or_create()'代碼。 – 2015-01-26 19:34:20

+0

不知道django,設置角度請求的具體問題是什麼?可以根據需要修改客戶端請求。 – charlietfl 2015-01-26 20:10:07

+0

@DanielRobinson,好吧,那麼我會這樣做。感謝您的幫助。你以前幫過我了! – 2015-01-26 20:12:06

回答

1

的一點是,角是一個客戶端框架,和Django是服務器端。 只有它們可以通過HTTP進行通信的方式,這意味着如果您希望Angular調用Django管理器方法,則需要通過連接到視圖的URL公開該方法。正如評論所說,做到這一點的一種方法是通過Django REST框架,但如果這對您的用例來說過分了,那麼您總是可以自己編寫視圖。

相關問題