繁体   English   中英

AJAX 数据未发布到 Django 中查看

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM