[英]AJAX Data not Posting to View in Django
我已经实现了一个基本的结帐,其中用户可以通过“地址”类从地址列表中选择一个送货地址。 它适用于服务器端,但我想使用 AJAX 来避免每次选择都刷新页面。 但是,该代码没有发布任何数据。 我究竟做错了什么?
视图.py
def pick_address(request):
if request.method == 'POST':
checkout = Checkout.objects.get(pk=request.POST.get('checkout'))
checkout.shipping_address = ShippingAddress.objects.get(pk=request.POST.get('address'))
checkout.save()
return HttpResponse('success')
选择地址.js
<script>
$('.address').click(function () {
$.ajax({
type: 'POST',
url: '{% url 'pick-address' %}',
dataType:'json',
data: {
checkout: {{ checkout.pk }},
address: {{ address.pk }},
csrfmiddlewaretoken: '{{ csrf_token }}'
},
success: function (data) {
if (data['success']) {
alert('success!');
}
}
});
});
</script>
在views.py中
def pick_address(request):
if request.method == 'POST':
checkout = Checkout.objects.get(pk=request.POST.get('checkout'))
checkout.shipping_address = ShippingAddress.objects.get(pk=request.POST.get('address'))
checkout.save()
ctx={'success':True}
return HttpResponse(json.dumps(ctx),content_type='application/json')
在pick_address.js中
success: function (data) {
if (data.success) {
alert('success!');
}
}
我使用的是不支持 AJAX 的精简版 jQuery。 否则代码(大部分)是正确的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.