Я пытаюсь использовать Django с XMLHttpRequest, попробуйте отправить без обновления страницы.Но у меня ошибка в консоли электронной почты не определена.
Это моя форма> имя, адрес электронной почты, адрес, текст
order_create.html
<h2>Create order</h2>
<form method="POST" id="post_form">
{% csrf_token %}
{{form.as_p}}
<button id="button">Submit</button>
</form>
После того, как я попробую использовать Javascript с XMLHttpRequest
document.getElementById('post_form').addEventListener('submit', event => {
event.preventDefault();
var body = 'name=' + name + "&email=" + email + "&address=" + address + "&text=" + text;
var xhr = new XMLHttpRequest();
xhr.open('POST', '/order/', true);
xhr.send(body);
xhr.onload = function() {
var jsonResp = JSON.parse(this.response);
if (this.status == 200) {
alert(jsonResp);
} else {
alert('ERROR');
}
}
});
urls.py
urlpatterns = [
url(r'^order/$', views.order_create, name='order_create')
]
views.py
def order_create(request):
cart = Cart(request)
if request.method == 'POST':
form = OrderCreateForm(request.POST)
response_data = {}
if form.is_valid():
order = form.save()
for item in cart:
OrderItem.objects.create(
order=order,
product=item['product'],
price=item['price'],
quantity=item['quantity']
)
cart.clear_session()
return JsonResponse(json.dumps(response_data), content_type="application/json", safe=False)
else:
form = OrderCreateForm()
return render(request, 'orders/order_create.html', {'cart':cart, 'form':form})
В консоли есть ошибка, адрес электронной почты не определен