[英]Django: AttributeError at /update_item/ 'WSGIRequest' object has no attribute 'data'
[英]Importing Data from a JSON to django AttributeError: 'WSGIRequest' object has no attribute 'data'
我正在嘗試從教程系列 - Django 電子商務網站 | 制作電子商務網站 添加到購物車功能 | Django 框架中的第 3 部分。
我的views.py是:
def updateItem(request):
data = json.loads(request.data)
productId = data['productId']
action = data['action']
print('productId: ', productId)
print('action: ', action)
return JsonResponse('Item was added', safe=False)
我的js文件是:
var updateBtns = document.getElementsByClassName('update-cart')
console.log('updateBtns length:', updateBtns.length);
for(var i=0; i<updateBtns.length; i++){
updateBtns[i].addEventListener('click', function(){
var productId = this.dataset.product
var action = this.dataset.action
console.log('product ID: ', productId, "Action: ", action)
console.log('User: ', user)
if (user == 'AnonymousUser'){
console.log('user is not authnticated');
}
else{
updateUserOrder(productId, action);
}
})
}
function updateUserOrder(productId, action){
console.log('user is authenticatred, sending data')
var url = '/update_item/'
fetch(url,{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-CSRFToken': csrftoken,
},
body: JSON.stringify({'productId': productId, 'action': action})
})
.then((response) =>{
return response.json()
})
.then((data) =>{
console.log('data: ', data)
})
}
這里我的問題是在views.py的updateItem函數中添加這些行后,控制台中顯示了錯誤-
data = json.loads(request.data)
AttributeError: 'WSGIRequest' object has no attribute 'data'
我怎么解決這個問題? 其實我不太清楚rest API或json。
做:
data = json.loads(request.body)
正如控制台中的建議: 'WSGIRequest' object has no attribute 'data'
,這是完全正確的。 但是,它有一個叫做body
屬性
具體來說,在您的 js fetch
您已將數據發送到request.body
:
body: JSON.stringify({'productId': productId, 'action': action}) // Here
作為Biplove Lamichhane對此答案的修改:
data = json.loads(request.body)
我需要做的是:
data = json.loads(request.body.decode("utf-8"))
當我從 UI 獲取字節時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.