Django-Angular,可以返回字符串,但不能返回对象或列表

时间:2014-07-04 04:00:22

标签: javascript python django angularjs

以下是我的简单代码。模板标记{{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中。

出了什么问题?我已经尝试了许多微小的调整但没有成功。

1 个答案:

答案 0 :(得分:0)

可能是您遇到json-serializability对象的问题。