2016-09-15 11 views
2

我正在使用角度1.4.4Django 1.8。当我将数据从Angular发布到Django视图时,它以整个数据的形式作为QueryDict中的关键字。角度帖子整个数据以Django视图作为QueryDict中的键值

所以鉴于在调试模式下时,我评估request.POST它返回这个

<QueryDict: {u'{"messagetitle":"","value":"","valueam":"","wrong_response":"","stop":"","messagekind":"1","undefined":"","messagetype":"3","state":"","language_id":1}': [u'']}> 

通知发布数据被内部U“”作为密钥,其值是[U“”]

的DataService代码是这个

function createDraft(data) { 
    return $http({ 
     url: view_url + 'create_draft/', 
     method: 'POST', 
     data: data, 
     headers: { 
      'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' 
     } 
    }) 
} 

控制器

app.controller('message',function($scope, $ngBootbox, dataservice, $http){ 
    $scope.formData = { 
     "messagetitle":"", "value":"", "valueam":"", 
     "wrong_response": "", "stop": "", "messagekind": "1", 
     "undefined_response": "", "messagetype":"3", 
     "state": "", "language_id":1 
    }; 
    saveDraft = function(){ 
     dataservice.createDraft($scope.formData).then(
     function(res) { 
      $ngBootbox.alert("<div class='alert-success alert_box'>Draft Saved</div>") 
     }, 
     function(res) { 
      var error_message = res['statusText'].trim(); 
      if (error_message === '') 
       error_message = 'Error Occurred'; 
      $ngBootbox.alert("<div class='alert-warning alert_box'>" + error_message + "</div>") 
     }) 
} 

saveDraft函数是从角模板(这是HTML形式)上点击按钮调用。

让我知道我在做什么错在这里。我已经尝试了一些在stackoverflow的答案,但找不到任何问题/答案,解决我的具体问题。

PS: 我知道我可以做json.loads(request.body),但我需要在Django的request.POST

+0

使用请求发布数据,而不是数据.POST.get('key_name') – arcegk

+0

它返回无 –

+0

请显示数据是什么以及它来自哪里。 –

回答

2

使用$.param(data)在服务

+0

感谢它的工作 –