下面是我的简单代码。模板标签{{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 格式。
出了什么问题吗?我已经尝试了很多微小的调整,但没有成功。
最佳答案
您可能遇到了 json-serializability 对象的问题。
关于javascript - Django-Angular,可以返回字符串,但不能返回对象或列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24566519/