以下是我的简单代码。模板标记{{test}}将正确显示返回的“地址”没问题。但是,如果我尝试返回一个对象或列表,我将继续使用以下
获得500内部服务器错误POST http://127.0.0.1:8000/ 500 (INTERNAL SERVER ERROR) angular.js:8467
(anonymous function) angular.js:8467
sendReq angular.js:8263
$http.serverRequest angular.js:7995
wrappedCallback angular.js:11485
wrappedCallback angular.js:11485
(anonymous function) angular.js:11571
Scope.$eval angular.js:12595
Scope.$digest angular.js:12407
Scope.$apply angular.js:12699
(anonymous function) angular.js:18941
(anonymous function) angular.js:2822
forEach angular.js:325
eventHandler
View.py
class HomeView(JSONResponseMixin, TemplateView):
template_name='angular/base.html'
@allow_remote_invocation
def main_query(self, in_data):
address = in_data.get('address')
obj = Restaurant.objects.filter(pk=1)
data = {'returns': address}
return data
Controller.js
app.controller("GridFilter", function($scope, djangoRMI){
$scope.addressValue = '';
$scope.mainQuery = function() {
var in_data = { address: $scope.addressValue };
djangoRMI.main_query(in_data)
.success(function(data) {
$scope.test = data.returns;
});
};
HTML
<div id="content" ng-app="myapp" ng-controller="GridFilter">
<input type='text' ng-model='addressValue' />
<button ng-click="mainQuery()">Submit</button>
{{ test }}
</div>
我想要做的就是构建一个简单的查询,其中一个人可以输入要查询的内容,js通过远程方法调用将该数据发送到main_query方法,执行查询服务器端并返回一个对象或列表。不知道为什么我可以返回字符串而不是对象或列表。使用JSONResponseMixin确保响应在json中。
出了什么问题?我已经尝试了许多微小的调整但没有成功。
答案 0 :(得分:0)
可能是您遇到json-serializability对象的问题。