我正在使用角度1.4.4和Django 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
使用请求发布数据,而不是数据.POST.get('key_name') – arcegk
它返回无 –
请显示数据是什么以及它来自哪里。 –