Django视图未从Angularjs$http reques接收数据

2024-09-28 22:29:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Angular$http向django发布数据,但django没有接收到它。我肯定是误用了$http(因为这可以与ajax一起工作),或者我的django视图是错误的。在

<div ng-controller="mycontroller2">
    <form ng-submit="submit()">
    {% csrf_token %}
       Search by name:<input ng-model="artiste" />
       <input type="submit" value="submit" />
    </form>
    <table>
        <tr ng-repeat="artist in artists">
            <td> {({ artist.fields.link })} </td>
        </tr>
    </table>
</div>
<script>
artApp.controller('mycontroller2', ['$scope', '$http',
function($scope, $http){
    $scope.submit = function(){           

    var postdata = {
        method: 'POST',
        url: '/rest/',
        data: {
            "artiste": $scope.artiste
        },
        headers: {
            'X-CSRFTOKEN': "{{ csrf_token }}"
        }
    };
    $http(postdata)
        .success(function(data){
            $scope.artists = data;
        })
    }
}]);
</script>

中的请求处理程序视图.py看起来像

^{pr2}$

我从Django得到的错误是ValueError at /rest/ Cannot use None as a query value。在

我获取“artiste”值的调用一定不是从$httpdata对象返回'davinci'。我确信发送成功,因为数据artiste: da vinci显示在devtools的头中。Django没有得到这个价值。request.POST.get("artiste")呼叫有问题吗?在


Tags: 数据djangodivform视图httpdata错误
1条回答
网友
1楼 · 发布于 2024-09-28 22:29:18

因为来自我的$http请求的数据是raw json data,所以我的Django请求处理程序必须进行更改才能处理。现在函数(在视图.py)看起来像

def rest(request):

    artistname = json.loads(request.body)      # <- accepts raw json data
    artistname = artistname['artiste']         # <- and now I can pull a value
    response_data = {}
    response_data = serializers.serialize(
                    "json", Art.objects.filter(artist__contains=artistname))

    return HttpResponse(json.dumps(response_data), content_type="application/json")

相关问题 更多 >