Это код в моем html в тегах скрипта
document.getElementById('payment-info').addEventListener('click',function(e){
submitFormData()
})
function submitFormData(){
console.log('Payment Button Clicked')
var userFormData={
'name':null,
'email':null,
'total':total,
}
var shippingInfo={
'address':null,
'city':null,
'state':null,
'zipcode':null,
}
shippingInfo.address = form.address.value
shippingInfo.city = form.city.value
shippingInfo.state = form.state.value
shippingInfo.zipcode = form.zipcode.value
var url="/process_order/"
fetch(url, {
method:'POST',
headers:{
'Content-Type':'application/json',
'X-CSRFToken':csrftoken,
},
body:JSON.stringify({'form':userFormData,'shipping':shippingInfo}),
})
.then((response) => response.json())
.then((data) => {
console.log('Success:',data);
alert('Transaction Completed')
window.location.href="{% url 'index' %}"
})
}
А это мой views.py
def processOrder(request):
transaction_id=datetime.datetime.now().timestamp()
data = json.loads(request.body)
customer=request.user.customer
order, created=Order.objects.get_or_create(customer=customer,complete=False)
total=float(data['form']['total'])
order.transaction_id=transaction_id
if total == float(order.get_cart_total):
order.complete = True
order.save()
ShippingAddress.objects.create(
customer=customer,
order=order,
address=data['shipping']['address'],
city=data['shipping']['city'],
state=data['shipping']['state'],
zipcode=data['shipping']['zipcode'],
)
Он работал нормально, пока я не добавил data=json.loads(request.body)
до почтового индекса. Когда я добавил эту часть кода, он начинает показывать мне эту ошибку:
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Без добавления этого раздела я смог успешно распечатать это: print('data:',request.body)
, но после добавления этой части кода я получаю эту ошибку . Я попытался выяснить, в чем проблема, но прошел день, и я не могу найти проблему.
Любая помощь будет принята с благодарностью, спасибо
Это полная ошибка:
Traceback (most recent call last):
File "c:\users\lenovo\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)
During handling of the above exception (0), another exception occurred:
File "C:\Users\LENOVO\Envs\myapp\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "C:\Users\LENOVO\Envs\myapp\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Users\LENOVO\Envs\myapp\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\LENOVO\myapp\website\myapp\views.py", line 156, in processOrder
data = json.loads(request.body)
File "c:\users\lenovo\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads
return _default_decoder.decode(s)
File "c:\users\lenovo\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "c:\users\lenovo\appdata\local\programs\python\python38\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
Exception Type: JSONDecodeError at /process_order/
Exception Value: Expecting value: line 1 column 1 (char 0)