【问题标题】:Django-Angular, can return string but not objects or listDjango-Angular,可以返回字符串但不能返回对象或列表
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-17
      • 1970-01-01
      • 2019-07-12
      • 1970-01-01
      • 1970-01-01
      • 2015-09-17
      • 1970-01-01
      • 2015-01-23
      相关资源
      最近更新 更多