【发布时间】:2014-08-25 08:00:55
【问题描述】:
下面是我的简单代码。模板标签 {{test}} 将正确显示返回的“地址”没有问题。但是,如果我尝试返回一个对象或一个列表,我会不断收到 500 Internal server error 并显示以下内容
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 格式。
怎么了?我已经尝试了许多微小的调整,但都没有成功。
【问题讨论】:
标签: javascript python django angularjs