Данные AJAX не публикуются для просмотра в Django - PullRequest
0 голосов
/ 29 декабря 2018

Я реализовал базовую проверку, в которой пользователь может выбрать адрес доставки из списка адресов с помощью класса address.Он работает на стороне сервера, но я хотел бы использовать AJAX, чтобы избежать обновления страницы при каждом выборе.Однако код не публикует никаких данных.Что я делаю не так?

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()
    return HttpResponse('success')

pick_address.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>

1 Ответ

0 голосов
/ 29 декабря 2018

В 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!');
                }
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...