Джанго: Веб-сайт Eccomerce. Когда я продолжаю оформление заказа, он сохраняет заказ, если человек не вошел в систему, но когда это не так, ошибка AnonymousUser
Я работаю над сайтом электронной коммерции и пришло время сделать оформление заказа. На моем сайте при заказе товара без учетной записи заказ сохраняется, но если с учетной записью, то происходит переход на другую страницу, но не стирается корзина и не сохраняется заказ. В чем проблема? Не могли бы вы помочь мне решить эту проблему. Не работает только когда клиент вошел в аккаунт. views.py
def processOrder(request):
transaction_id = datetime.datetime.now().timestamp()
data = json.loads(request.body)
tel = data['shipping']['number'],
address=data['shipping']['address'],
city=data['shipping']['city'],
state=data['shipping']['state'],
if request.user.is_authenticated:
customer = request.user.customer
order, created = Order.objects.get_or_create(customer=customer, complete=False)
else:
customer, order = guestOrder(request, data)
total = float(data['form']['total'])
order.transaction_id = transaction_id
order.tel= tel
order.address=address
order.city=city
order.state=state
if total == order.get_cart_total:
order.complete = False
order.save()
return JsonResponse('Payment submitted..', safe=False)
html
script fetch
function getToken(name) {
var cookieValue = null;
if (document.cookie && document.cookie !== '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i].trim();
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) === (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
var csrftoken = getToken('csrftoken')
var total = '{{order.get_cart_total}}'
var form = document.getElementById('form')
form.addEventListener('submit', function(e){
e.preventDefault()
console.log('Form Submitted...')
})
document.getElementById('make-payment').addEventListener('click', function(e){
submitFormData()
})
function submitFormData(){
console.log('Payment button clicked')
var userFormData = {
'name':null,
'surname':null,
'email':null,
'total':total,
}
var shippingInfo = {
'name':null,
'surname':null,
'email':null,
'number':null,
'address':null,
'city':null,
'state':null,
}
shippingInfo.address = form.address.value
shippingInfo.city = form.city.value
shippingInfo.state = form.state.value
shippingInfo.number = form.number.value
userFormData.name = form.name.value
userFormData.surname = form.surname.value
userFormData.email = form.email.value
console.log('Shipping Info:', shippingInfo)
console.log('User Info:', userFormData)
var url = "/process_order/"
fetch(url, {
method:'POST',
headers:{
'Content-Type':'applicaiton/json',
'X-CSRFToken':csrftoken,
},
body:JSON.stringify({'form':userFormData, 'shipping':shippingInfo}),
})
.then((data) => {
console.log('Success:', data);
alert('Transaction completed');
cart = {}
document.cookie ='cart=' + JSON.stringify(cart) + ";domain=;path=/"
window.location.href = "{% url 'store' %}"
})
}
</script>
Пожалуйста, помогите! Заранее спасибо!